• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /macosx-10.10.1/emacs-93/emacs/lisp/gnus/

Lines Matching +defs:mail +defs:header +defs:message +defs:id

1 ;;; nnheader.el --- header access macros for Gnus and its backends
40 (require 'mail-utils)
115 (autoload 'nnmail-message-id "nnmail")
116 (autoload 'mail-position-on-field "sendmail")
117 (autoload 'message-remove-header "message")
128 ;; The format of a header is now:
129 ;; [number subject from date id references chars lines xref extra]
134 (defmacro mail-header-number (header)
136 `(aref ,header 0))
138 (defmacro mail-header-set-number (header number)
140 `(aset ,header 0 ,number))
142 (defmacro mail-header-subject (header)
144 `(aref ,header 1))
146 (defmacro mail-header-set-subject (header subject)
148 `(aset ,header 1 ,subject))
150 (defmacro mail-header-from (header)
152 `(aref ,header 2))
154 (defmacro mail-header-set-from (header from)
156 `(aset ,header 2 ,from))
158 (defmacro mail-header-date (header)
160 `(aref ,header 3))
162 (defmacro mail-header-set-date (header date)
164 `(aset ,header 3 ,date))
166 (defalias 'mail-header-message-id 'mail-header-id)
167 (defmacro mail-header-id (header)
169 `(aref ,header 4))
171 (defalias 'mail-header-set-message-id 'mail-header-set-id)
172 (defmacro mail-header-set-id (header id)
174 `(aset ,header 4 ,id))
176 (defmacro mail-header-references (header)
178 `(aref ,header 5))
180 (defmacro mail-header-set-references (header ref)
182 `(aset ,header 5 ,ref))
184 (defmacro mail-header-chars (header)
186 `(aref ,header 6))
188 (defmacro mail-header-set-chars (header chars)
190 `(aset ,header 6 ,chars))
192 (defmacro mail-header-lines (header)
194 `(aref ,header 7))
196 (defmacro mail-header-set-lines (header lines)
198 `(aset ,header 7 ,lines))
200 (defmacro mail-header-xref (header)
202 `(aref ,header 8))
204 (defmacro mail-header-set-xref (header xref)
206 `(aset ,header 8 ,xref))
208 (defmacro mail-header-extra (header)
210 `(aref ,header 9))
212 (defmacro mail-header-set-extra (header extra)
214 `(aset ,header 9 ',extra))
216 (defsubst make-mail-header (&optional init)
217 "Create a new mail header structure initialized with INIT."
220 (defsubst make-full-mail-header (&optional number subject from date id
223 "Create a new mail header structure initialized with the parameters given."
224 (vector number subject from date id references chars lines xref extra))
226 ;; fake message-ids: generation and detection
228 (defvar nnheader-fake-message-id 1)
230 (defsubst nnheader-generate-fake-message-id ()
231 (concat "fake+none+" (int-to-string (incf nnheader-fake-message-id))))
233 (defsubst nnheader-fake-message-id-p (id)
234 (save-match-data ; regular message-id's are <.*>
235 (string-match "\\`fake\\+none\\+[0-9]+\\'" id)))
244 (defsubst nnheader-header-value ()
276 (nnheader-header-value) "(none)"))
281 (nnheader-header-value) "(nobody)"))
286 (nnheader-header-value) ""))
290 (if (search-forward "\nmessage-id:" nil t)
295 ;; If there was no message-id, we just fake one to make
297 (nnheader-generate-fake-message-id)))
302 (nnheader-header-value)
303 ;; Get the references from the in-reply-to header if
304 ;; there were no references and the in-reply-to header
307 (setq in-reply-to (nnheader-header-value))
333 (nnheader-header-value)))
342 (push (cons (car extra) (nnheader-header-value))
356 ;; Search to the beginning of the next header. Error
395 (defmacro nnheader-nov-read-message-id ()
396 '(let ((id (nnheader-nov-field)))
397 (if (string-match "^<[^>]+>$" id)
398 id
399 (nnheader-generate-fake-message-id))))
408 (nnheader-nov-read-message-id) ; id
419 (defun nnheader-insert-nov (header)
420 (princ (mail-header-number header) (current-buffer))
424 (or (mail-header-subject header) "(none)") "\t"
425 (or (mail-header-from header) "(nobody)") "\t"
426 (or (mail-header-date header) "") "\t"
427 (or (mail-header-id header)
428 (nnmail-message-id))
430 (or (mail-header-references header) "") "\t")
431 (princ (or (mail-header-chars header) 0) (current-buffer))
433 (princ (or (mail-header-lines header) 0) (current-buffer))
435 (when (mail-header-xref header)
436 (insert "Xref: " (mail-header-xref header)))
437 (when (or (mail-header-xref header)
438 (mail-header-extra header))
440 (when (mail-header-extra header)
441 (let ((extra (mail-header-extra header)))
468 (defun nnheader-insert-header (header)
470 "Subject: " (or (mail-header-subject header) "(none)") "\n"
471 "From: " (or (mail-header-from header) "(nobody)") "\n"
472 "Date: " (or (mail-header-date header) "") "\n"
473 "Message-ID: " (or (mail-header-id header) (nnmail-message-id)) "\n"
474 "References: " (or (mail-header-references header) "") "\n"
476 (princ (or (mail-header-lines header) 0) (current-buffer))
552 (defvar news-reply-yank-message-id nil)
625 (defun nnheader-insert-references (references message-id)
626 "Insert a References header based on REFERENCES and MESSAGE-ID."
627 (if (and (not references) (not message-id))
630 (mail-position-on-field "References")
636 (when (and references message-id)
638 (when message-id
639 (insert message-id))
645 (defun nnheader-replace-header (header new-value)
651 (message-remove-header header)
653 (insert header ": " new-value "\n")))))
800 (nnheader-message 5 "%s" (symbol-value (intern (format "%s-status-string"
802 (error (nnheader-message 5 ""))))
847 (defun nnheader-message (level &rest args)
851 (apply 'message args)