Function: rmail-make-in-reply-to-field
rmail-make-in-reply-to-field is a byte-compiled function defined in
rmail.el.gz.
Signature
(rmail-make-in-reply-to-field FROM DATE MESSAGE-ID)
Source Code
;; Defined in /usr/src/emacs/lisp/mail/rmail.el.gz
(defun rmail-make-in-reply-to-field (from date message-id)
(cond ((not from)
(if message-id
message-id
nil))
(mail-use-rfc822
(require 'rfc822)
(let ((tem (car (rfc822-addresses from))))
(if message-id
(if (or (not tem)
(string-match
(regexp-quote (if (string-match "@[^@]*\\'" tem)
(substring tem 0
(match-beginning 0))
tem))
message-id))
;; missing From, or Message-ID is sufficiently informative
message-id
(concat message-id " (" tem ")"))
;; Message has no Message-ID field.
;; Copy TEM, discarding text properties.
(setq tem (copy-sequence tem))
(set-text-properties 0 (length tem) nil tem)
(setq tem (copy-sequence tem))
;; Use prin1 to fake RFC 822 (or later) quoting
(let ((field (prin1-to-string tem)))
;; Wrap it in parens to make it a comment.
(if date
(concat "(" field "'s message of " date ")")
(concat "(" field ")"))))))
((let* ((foo "[^][\000-\037()<>@,;:\\\" ]+")
(bar "[^][\000-\037()<>@,;:\\\"]+"))
;; These strings both match all non-ASCII characters.
(or (string-match (concat "\\`[ \t]*\\(" bar
"\\)\\(<" foo "@" foo ">\\)?[ \t]*\\'")
;; "Unix Loser <Foo@bar.edu>" => "Unix Loser"
from)
(string-match (concat "\\`[ \t]*<" foo "@" foo ">[ \t]*(\\("
bar "\\))[ \t]*\\'")
;; "<Bugs@bar.edu>" (Losing Unix) => "Losing Unix"
from)))
(let ((start (match-beginning 1))
(end (match-end 1)))
;; Trim whitespace which above regexp match allows
(while (and (< start end)
(memq (aref from start) '(?\t ?\s)))
(setq start (1+ start)))
(while (and (< start end)
(memq (aref from (1- end)) '(?\t ?\s)))
(setq end (1- end)))
(let ((field (substring from start end)))
(if date (setq field (concat "message from " field " on " date)))
(if message-id
;; "<AA259@bar.edu> (message from Unix Loser on 1-Apr-89)"
(concat message-id " (" field ")")
;; Wrap in parens to make it a comment.
(concat "(" field ")")))))
(t
;; If we can't kludge it simply, do it correctly
(let ((mail-use-rfc822 t))
(rmail-make-in-reply-to-field from date message-id)))))