aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/mail
diff options
context:
space:
mode:
authorGlenn Morris2019-02-20 12:07:22 -0800
committerGlenn Morris2019-02-20 12:07:22 -0800
commit83a9133e35827c1edbd8bf24a17ffa3b4bfb7be3 (patch)
tree11d2812db4a9ee4e66976b3a5f1e5ecbe52b4955 /lisp/mail
parentae77728d14e58054bdaee3c6965979947c778208 (diff)
parentff9c9620794e5fe5692cfd3badd207aac78921cb (diff)
downloademacs-83a9133e35827c1edbd8bf24a17ffa3b4bfb7be3.tar.gz
emacs-83a9133e35827c1edbd8bf24a17ffa3b4bfb7be3.zip
Merge from origin/emacs-26
ff9c962 ; * lisp/ldefs-boot.el: Update. b4a251c * ; ChangeLog.3 update d3104e3 * etc/AUTHORS: Update. a19bfb7 Remove .art from the default list of ImageMagick extensions 6985caa Fix input after setting x-wait-for-event-timeout nil 715388a Fix two warnings in eshell.texi d49cdd9 * lisp/minibuffer.el (completion-table-dynamic): Improve docs... 5dc4e51 * lisp/emacs-lisp/debug.el (debug-on-variable-change): Doc fi... 76ef805 Fix a typo in ELisp manual b5e66f4 Update citations of Internet RFCs 57ece2a Fix handling of manpage references divided by hyphenation 7ad0cd6 * doc/misc/eshell.texi: Fix some @ref's. 12b7940 Fix a typo in lispref/syntax.texi # Conflicts: # lisp/gnus/nnrss.el # lisp/mail/ietf-drums.el
Diffstat (limited to 'lisp/mail')
-rw-r--r--lisp/mail/feedmail.el8
-rw-r--r--lisp/mail/ietf-drums.el10
-rw-r--r--lisp/mail/mail-extr.el31
-rw-r--r--lisp/mail/mail-utils.el4
-rw-r--r--lisp/mail/mailclient.el2
-rw-r--r--lisp/mail/mailheader.el2
-rw-r--r--lisp/mail/rfc2047.el8
-rw-r--r--lisp/mail/rfc822.el6
-rw-r--r--lisp/mail/rmail.el18
-rw-r--r--lisp/mail/sendmail.el9
-rw-r--r--lisp/mail/smtpmail.el7
-rw-r--r--lisp/mail/supercite.el6
12 files changed, 57 insertions, 54 deletions
diff --git a/lisp/mail/feedmail.el b/lisp/mail/feedmail.el
index 2b63343239b..ff178241a90 100644
--- a/lisp/mail/feedmail.el
+++ b/lisp/mail/feedmail.el
@@ -561,7 +561,7 @@ but common in some proprietary systems."
561;; maybe some distant mail system needs it. Really, though, if you 561;; maybe some distant mail system needs it. Really, though, if you
562;; want a sender line in your mail, just put one in there and don't 562;; want a sender line in your mail, just put one in there and don't
563;; wait for feedmail to do it for you. (Yes, I know all about 563;; wait for feedmail to do it for you. (Yes, I know all about
564;; RFC-822 and RFC-1123, but are you *really* one of those cases 564;; RFC-822-or-later and RFC-1123, but are you *really* one of those cases
565;; they're talking about? I doubt it.) 565;; they're talking about? I doubt it.)
566(defcustom feedmail-sender-line nil 566(defcustom feedmail-sender-line nil
567 "If non-nil and the email has no Sender: header, use this value. 567 "If non-nil and the email has no Sender: header, use this value.
@@ -787,7 +787,7 @@ cases the name element of the fiddle-plex is ignored and is hardwired
787by feedmail to either \"Date\" or \"Resent-Date\". 787by feedmail to either \"Date\" or \"Resent-Date\".
788 788
789If you decide to format your own date field, do us all a favor and know 789If you decide to format your own date field, do us all a favor and know
790what you're doing. Study the relevant parts of RFC-822 and RFC-1123. 790what you're doing. Study the relevant parts of RFC-822-or-later and RFC-1123.
791Don't make me come up there! 791Don't make me come up there!
792 792
793You should let feedmail generate a Date: for you unless you are sure 793You should let feedmail generate a Date: for you unless you are sure
@@ -1514,7 +1514,7 @@ function, for example, to archive all of your sent messages someplace
1514 1514
1515 1515
1516(defvar feedmail-is-a-resend nil 1516(defvar feedmail-is-a-resend nil
1517 "Non-nil means the message is a Resend (in the RFC-822 sense). 1517 "Non-nil means the message is a Resend (in the RFC-822-or-later sense).
1518This affects the composition of certain headers. feedmail sets this 1518This affects the composition of certain headers. feedmail sets this
1519variable as soon as it starts prepping the message text buffer, so any 1519variable as soon as it starts prepping the message text buffer, so any
1520user-supplied functions can rely on it. Users shouldn't set or change this 1520user-supplied functions can rely on it. Users shouldn't set or change this
@@ -2443,7 +2443,7 @@ mapped to mostly alphanumerics for safety."
2443 2443
2444 (let ((case-fold-search t) (addr-regexp)) 2444 (let ((case-fold-search t) (addr-regexp))
2445 (goto-char (point-min)) 2445 (goto-char (point-min))
2446 ;; There are some RFC-822 combinations/cases missed here, 2446 ;; There are some RFC-822-or-later combinations/cases missed here,
2447 ;; but probably good enough and what users expect. 2447 ;; but probably good enough and what users expect.
2448 ;; 2448 ;;
2449 ;; Use resent-* stuff only if there is at least one non-empty one. 2449 ;; Use resent-* stuff only if there is at least one non-empty one.
diff --git a/lisp/mail/ietf-drums.el b/lisp/mail/ietf-drums.el
index 81377c9c41a..29752cb5c28 100644
--- a/lisp/mail/ietf-drums.el
+++ b/lisp/mail/ietf-drums.el
@@ -1,4 +1,4 @@
1;;; ietf-drums.el --- Functions for parsing RFC822bis headers -*- lexical-binding:t -*- 1;;; ietf-drums.el --- Functions for parsing RFC 2822 headers -*- lexical-binding:t -*-
2 2
3;; Copyright (C) 1998-2019 Free Software Foundation, Inc. 3;; Copyright (C) 1998-2019 Free Software Foundation, Inc.
4 4
@@ -20,10 +20,10 @@
20 20
21;;; Commentary: 21;;; Commentary:
22 22
23;; DRUMS is an IETF Working Group that works (or worked) on the 23;; DRUMS is an IETF Working Group that worked on Internet RFC 2822,
24;; successor to RFC822, "Standard For The Format Of Arpa Internet Text 24;; the successor to RFC 822 and the predecessor of RFC 5322. This
25;; Messages". This library is based on 25;; library is based on draft-ietf-drums-msg-fmt-05.txt, released on
26;; draft-ietf-drums-msg-fmt-05.txt, released on 1998-08-05. 26;; 1998-08-05.
27 27
28;; Pending a real regression self test suite, Simon Josefsson added 28;; Pending a real regression self test suite, Simon Josefsson added
29;; various self test expressions snipped from bug reports, and their 29;; various self test expressions snipped from bug reports, and their
diff --git a/lisp/mail/mail-extr.el b/lisp/mail/mail-extr.el
index 1b650c9aed9..ae849d7b62b 100644
--- a/lisp/mail/mail-extr.el
+++ b/lisp/mail/mail-extr.el
@@ -1,4 +1,4 @@
1;;; mail-extr.el --- extract full name and address from RFC 822 mail header 1;;; mail-extr.el --- extract full name and address from email header
2 2
3;; Copyright (C) 1991-1994, 1997, 2001-2019 Free Software Foundation, 3;; Copyright (C) 1991-1994, 1997, 2001-2019 Free Software Foundation,
4;; Inc. 4;; Inc.
@@ -29,15 +29,15 @@
29;; 29;;
30;; mail-extract-address-components: (address &optional all) 30;; mail-extract-address-components: (address &optional all)
31;; 31;;
32;; Given an RFC-822 ADDRESS, extract full name and canonical address. 32;; Given an RFC-822-or-later ADDRESS, extract name and address.
33;; Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). 33;; Returns a list of the form (FULL-NAME CANONICAL-ADDRESS).
34;; If no name can be extracted, FULL-NAME will be nil. 34;; If no name can be extracted, FULL-NAME will be nil.
35;; ADDRESS may be a string or a buffer. If it is a buffer, the visible 35;; ADDRESS may be a string or a buffer. If it is a buffer, the visible
36;; (narrowed) portion of the buffer will be interpreted as the address. 36;; (narrowed) portion of the buffer will be interpreted as the address.
37;; (This feature exists so that the clever caller might be able to avoid 37;; (This feature exists so that the clever caller might be able to avoid
38;; consing a string.) 38;; consing a string.)
39;; If ADDRESS contains more than one RFC-822 address, only the first is 39;; If ADDRESS contains more than one RFC-822-or-later address, only
40;; returned. 40;; the first is returned.
41;; 41;;
42;; If ALL is non-nil, that means return info about all the addresses 42;; If ALL is non-nil, that means return info about all the addresses
43;; that are found in ADDRESS. The value is a list of elements of 43;; that are found in ADDRESS. The value is a list of elements of
@@ -149,7 +149,7 @@
149;; * Handle "null" addresses. Handle = used for spacing in mailbox 149;; * Handle "null" addresses. Handle = used for spacing in mailbox
150;; name. Fix bug in handling of ROUTE-ADDR-type addresses that are 150;; name. Fix bug in handling of ROUTE-ADDR-type addresses that are
151;; missing their brackets. Handle uppercase "JR". Extract full 151;; missing their brackets. Handle uppercase "JR". Extract full
152;; names from X.400 addresses encoded in RFC-822. Fix bug in 152;; names from X.400 addresses encoded in RFC-822-or-later. Fix bug in
153;; handling of multiple addresses where first has trailing comment. 153;; handling of multiple addresses where first has trailing comment.
154;; Handle more kinds of telephone extension lead-ins. 154;; Handle more kinds of telephone extension lead-ins.
155;; 155;;
@@ -209,7 +209,7 @@
209 209
210 210
211(defgroup mail-extr nil 211(defgroup mail-extr nil
212 "Extract full name and address from RFC 822 mail header." 212 "Extract full name and address from RFC 822 (or later) mail header."
213 :prefix "mail-extr-" 213 :prefix "mail-extr-"
214 :group 'mail) 214 :group 'mail)
215 215
@@ -288,8 +288,9 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
288(defconst mail-extr-all-letters-but-separators 288(defconst mail-extr-all-letters-but-separators
289 (purecopy "][[:alnum:]{|}'~`")) 289 (purecopy "][[:alnum:]{|}'~`"))
290 290
291;; Any character that can occur in a name in an RFC822 address including 291;; Any character that can occur in a name in an RFC 822 (or later)
292;; the separator (hyphen and possibly period) for multipart names. 292;; address including the separator (hyphen and possibly period) for
293;; multipart names.
293;; #### should . be in here? 294;; #### should . be in here?
294(defconst mail-extr-all-letters 295(defconst mail-extr-all-letters
295 (purecopy (concat mail-extr-all-letters-but-separators "---"))) 296 (purecopy (concat mail-extr-all-letters-but-separators "---")))
@@ -532,7 +533,8 @@ by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
532 (?. ".") 533 (?. ".")
533 (?\[ ".") 534 (?\[ ".")
534 (?\] ".") 535 (?\] ".")
535 ;; % and ! aren't RFC822 characters, but it is convenient to pretend 536 ;; % and ! aren't RFC 822 (or later) characters,
537 ;; but it is convenient to pretend.
536 (?% ".") 538 (?% ".")
537 (?! ".") ;; this needs to be word-constituent when not in .UUCP mode 539 (?! ".") ;; this needs to be word-constituent when not in .UUCP mode
538 ) 540 )
@@ -697,7 +699,8 @@ Unless NO-REPLACE is true, at each of the positions in LIST-SYMBOL
697 699
698;;;###autoload 700;;;###autoload
699(defun mail-extract-address-components (address &optional all) 701(defun mail-extract-address-components (address &optional all)
700 "Given an RFC-822 address ADDRESS, extract full name and canonical address. 702 "Extract full name and canonical address from ADDRESS.
703ADDRESS should be in RFC 822 (or later) format.
701Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). If no 704Returns a list of the form (FULL-NAME CANONICAL-ADDRESS). If no
702name can be extracted, FULL-NAME will be nil. Also see 705name can be extracted, FULL-NAME will be nil. Also see
703`mail-extr-ignore-single-names' and 706`mail-extr-ignore-single-names' and
@@ -936,10 +939,10 @@ non-display use, you should probably use
936 ;; Trim other punctuation lists of items outside < > pair to handle 939 ;; Trim other punctuation lists of items outside < > pair to handle
937 ;; stupid MTAs. 940 ;; stupid MTAs.
938 (when <-pos ; don't need to check >-pos also 941 (when <-pos ; don't need to check >-pos also
939 ;; handle bozo software that violates RFC 822 by sticking 942 ;; Handle bozo software that violates RFC 822 (or later)
940 ;; punctuation marks outside of a < > pair 943 ;; by sticking punctuation marks outside of a < > pair.
941 (mail-extr-nuke-outside-range @-pos <-pos >-pos t) 944 (mail-extr-nuke-outside-range @-pos <-pos >-pos t)
942 ;; RFC 822 says nothing about these two outside < >, but 945 ;; RFC 822 (or later) says nothing about these two outside < >, but
943 ;; remove those positions from the lists to make things 946 ;; remove those positions from the lists to make things
944 ;; easier. 947 ;; easier.
945 (mail-extr-nuke-outside-range !-pos <-pos >-pos t) 948 (mail-extr-nuke-outside-range !-pos <-pos >-pos t)
@@ -1325,7 +1328,7 @@ non-display use, you should probably use
1325 (narrow-to-region atom-beg atom-end) 1328 (narrow-to-region atom-beg atom-end)
1326 (cond 1329 (cond
1327 1330
1328 ;; Handle X.400 addresses encoded in RFC-822. 1331 ;; Handle X.400 addresses encoded in RFC 822 or later.
1329 ;; *** Shit! This has to handle the case where it is 1332 ;; *** Shit! This has to handle the case where it is
1330 ;; *** embedded in a quote too! 1333 ;; *** embedded in a quote too!
1331 ;; *** Shit! The input is being broken up into atoms 1334 ;; *** Shit! The input is being broken up into atoms
diff --git a/lisp/mail/mail-utils.el b/lisp/mail/mail-utils.el
index 61b972665eb..cbcbdfaeb2e 100644
--- a/lisp/mail/mail-utils.el
+++ b/lisp/mail/mail-utils.el
@@ -29,7 +29,7 @@
29 29
30;;;###autoload 30;;;###autoload
31(defcustom mail-use-rfc822 nil 31(defcustom mail-use-rfc822 nil
32 "If non-nil, use a full, hairy RFC822 parser on mail addresses. 32 "If non-nil, use a full, hairy RFC 822 (or later) parser on mail addresses.
33Otherwise, (the default) use a smaller, somewhat faster, and 33Otherwise, (the default) use a smaller, somewhat faster, and
34often correct parser." 34often correct parser."
35 :type 'boolean 35 :type 'boolean
@@ -384,7 +384,7 @@ The buffer should be narrowed to just the header."
384 (date (mail-fetch-field "date")) 384 (date (mail-fetch-field "date"))
385 ;; A From: header can contain multiple addresses, a "From " 385 ;; A From: header can contain multiple addresses, a "From "
386 ;; line must contain only one. (Bug#7760) 386 ;; line must contain only one. (Bug#7760)
387 ;; See eg RFC 5322, 3.6.2. Originator Fields. 387 ;; See, e.g., RFC 5322, 3.6.2. Originator Fields.
388 (end (string-match "[ \t]*[,\n]" from))) 388 (end (string-match "[ \t]*[,\n]" from)))
389 (format "From %s %s\n" (if end 389 (format "From %s %s\n" (if end
390 (substring from 0 end) 390 (substring from 0 end)
diff --git a/lisp/mail/mailclient.el b/lisp/mail/mailclient.el
index 5dd66ff8452..4d8cda10fff 100644
--- a/lisp/mail/mailclient.el
+++ b/lisp/mail/mailclient.el
@@ -152,7 +152,7 @@ The mail client is taken to be the handler of mailto URLs."
152 (setq character-coding (downcase character-coding))) 152 (setq character-coding (downcase character-coding)))
153 (concat 153 (concat
154 "mailto:" 154 "mailto:"
155 ;; some of the headers according to RFC822 155 ;; Some of the headers according to RFC 822 (or later).
156 (mailclient-gather-addresses "To" 156 (mailclient-gather-addresses "To"
157 'drop-first-name) 157 'drop-first-name)
158 (mailclient-gather-addresses "cc" ) 158 (mailclient-gather-addresses "cc" )
diff --git a/lisp/mail/mailheader.el b/lisp/mail/mailheader.el
index 0db4df063e3..936f53e96a5 100644
--- a/lisp/mail/mailheader.el
+++ b/lisp/mail/mailheader.el
@@ -23,7 +23,7 @@
23 23
24;;; Commentary: 24;;; Commentary:
25 25
26;; This package provides an abstraction to RFC822-style messages, used in 26;; This package provides an abstraction of RFC 822 (or later) format, used in
27;; mail, news, and some other systems. The simple syntactic rules for such 27;; mail, news, and some other systems. The simple syntactic rules for such
28;; headers, such as quoting and line folding, are routinely reimplemented 28;; headers, such as quoting and line folding, are routinely reimplemented
29;; in many individual packages. This package removes the need for this 29;; in many individual packages. This package removes the need for this
diff --git a/lisp/mail/rfc2047.el b/lisp/mail/rfc2047.el
index 95f9f8ce0ad..118ca8a4c9b 100644
--- a/lisp/mail/rfc2047.el
+++ b/lisp/mail/rfc2047.el
@@ -338,7 +338,7 @@ The buffer may be narrowed."
338 338
339;; Use this syntax table when parsing into regions that may need 339;; Use this syntax table when parsing into regions that may need
340;; encoding. Double quotes are string delimiters, backslash is 340;; encoding. Double quotes are string delimiters, backslash is
341;; character quoting, and all other RFC 2822 special characters are 341;; character quoting, and all other RFC 822 (or later) special characters are
342;; treated as punctuation so we can use forward-sexp/forward-word to 342;; treated as punctuation so we can use forward-sexp/forward-word to
343;; skip to the end of regions appropriately. Nb. ietf-drums does 343;; skip to the end of regions appropriately. Nb. ietf-drums does
344;; things differently. 344;; things differently.
@@ -366,7 +366,7 @@ The buffer may be narrowed."
366 366
367(defun rfc2047-encode-region (b e &optional dont-fold) 367(defun rfc2047-encode-region (b e &optional dont-fold)
368 "Encode words in region B to E that need encoding. 368 "Encode words in region B to E that need encoding.
369By default, the region is treated as containing RFC2822 addresses. 369By default, the region is treated as containing RFC 822 (or later) addresses.
370Dynamically bind `rfc2047-encoding-type' to change that." 370Dynamically bind `rfc2047-encoding-type' to change that."
371 (save-restriction 371 (save-restriction
372 (narrow-to-region b e) 372 (narrow-to-region b e)
@@ -403,7 +403,7 @@ Dynamically bind `rfc2047-encoding-type' to change that."
403 (with-syntax-table rfc2047-syntax-table 403 (with-syntax-table rfc2047-syntax-table
404 (goto-char (point-min)) 404 (goto-char (point-min))
405 (condition-case err ; in case of unbalanced quotes 405 (condition-case err ; in case of unbalanced quotes
406 ;; Look for rfc2822-style: sequences of atoms, quoted 406 ;; Look for RFC 822 (or later) style: sequences of atoms, quoted
407 ;; strings, specials, whitespace. (Specials mustn't be 407 ;; strings, specials, whitespace. (Specials mustn't be
408 ;; encoded.) 408 ;; encoded.)
409 (while (not (eobp)) 409 (while (not (eobp))
@@ -1025,7 +1025,7 @@ other than `\"' and `\\' in quoted strings."
1025 (replace-match " ")) 1025 (replace-match " "))
1026 (setq end (point-max)) 1026 (setq end (point-max))
1027 ;; Quote decoded words if there are special characters 1027 ;; Quote decoded words if there are special characters
1028 ;; which might violate RFC2822. 1028 ;; which might violate RFC 822 (or later).
1029 (when (and rfc2047-quote-decoded-words-containing-tspecials 1029 (when (and rfc2047-quote-decoded-words-containing-tspecials
1030 (let ((regexp (car (rassq 1030 (let ((regexp (car (rassq
1031 'address-mime 1031 'address-mime
diff --git a/lisp/mail/rfc822.el b/lisp/mail/rfc822.el
index 594416f12d7..a53a77e47ee 100644
--- a/lisp/mail/rfc822.el
+++ b/lisp/mail/rfc822.el
@@ -1,4 +1,4 @@
1;;; rfc822.el --- hairy rfc822 parser for mail and news and suchlike 1;;; rfc822.el --- hairy RFC 822 (or later) parser for mail, news, etc.
2 2
3;; Copyright (C) 1986-1987, 1990, 2001-2019 Free Software Foundation, 3;; Copyright (C) 1986-1987, 1990, 2001-2019 Free Software Foundation,
4;; Inc. 4;; Inc.
@@ -24,8 +24,8 @@
24 24
25;;; Commentary: 25;;; Commentary:
26 26
27;; Support functions for parsing RFC-822 headers, used by mail and news 27;; Support functions for parsing headers used by mail and news modes.
28;; modes. 28;; The header format is specified by Internet RFC 822 and its successors.
29 29
30;;; Code: 30;;; Code:
31 31
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index 0f89e0e0386..36821e83e0d 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -779,8 +779,8 @@ The first parenthesized expression should match the MIME-charset name.")
779 (concat 779 (concat
780 "From " 780 "From "
781 781
782 ;; Many things can happen to an RFC 822 mailbox before it is put into 782 ;; Many things can happen to an RFC 822 (or later) mailbox before it is
783 ;; a `From' line. The leading phrase can be stripped, e.g. 783 ;; put into a `From' line. The leading phrase can be stripped, e.g.
784 ;; `Joe <@w.x:joe@y.z>' -> `<@w.x:joe@y.z>'. The <> can be stripped, e.g. 784 ;; `Joe <@w.x:joe@y.z>' -> `<@w.x:joe@y.z>'. The <> can be stripped, e.g.
785 ;; `<@x.y:joe@y.z>' -> `@x.y:joe@y.z'. Everything starting with a CRLF 785 ;; `<@x.y:joe@y.z>' -> `@x.y:joe@y.z'. Everything starting with a CRLF
786 ;; can be removed, e.g. 786 ;; can be removed, e.g.
@@ -1003,8 +1003,8 @@ If `rmail-display-summary' is non-nil, make a summary for this RMAIL file."
1003 "Report that the buffer is not in the mbox file format. 1003 "Report that the buffer is not in the mbox file format.
1004MSGNUM, if present, indicates the malformed message." 1004MSGNUM, if present, indicates the malformed message."
1005 (if msgnum 1005 (if msgnum
1006 (error "Message %d is not a valid RFC2822 message" msgnum) 1006 (error "Message %d is not a valid RFC 822 (or later) message" msgnum)
1007 (error "Message is not a valid RFC2822 message"))) 1007 (error "Message is not a valid RFC 822 (or later) message")))
1008 1008
1009(defun rmail-convert-babyl-to-mbox () 1009(defun rmail-convert-babyl-to-mbox ()
1010 "Convert the mail file from Babyl version 5 to mbox. 1010 "Convert the mail file from Babyl version 5 to mbox.
@@ -2148,9 +2148,9 @@ Call with point at the end of the message."
2148 (insert "\n"))) 2148 (insert "\n")))
2149 2149
2150(defun rmail-add-mbox-headers () 2150(defun rmail-add-mbox-headers ()
2151 "Validate the RFC2822 format for the new messages. 2151 "Validate the RFC 822 (or later) format for the new messages.
2152Point should be at the first new message. 2152Point should be at the first new message.
2153An error is signaled if the new messages are not RFC2822 2153An error is signaled if the new messages are not RFC 822 (or later)
2154compliant. 2154compliant.
2155Unless an Rmail attribute header already exists, add it to the 2155Unless an Rmail attribute header already exists, add it to the
2156new messages. Return the number of new messages." 2156new messages. Return the number of new messages."
@@ -3915,9 +3915,9 @@ which is an element of rmail-msgref-vector."
3915 (setq tem (copy-sequence tem)) 3915 (setq tem (copy-sequence tem))
3916 (set-text-properties 0 (length tem) nil tem) 3916 (set-text-properties 0 (length tem) nil tem)
3917 (setq tem (copy-sequence tem)) 3917 (setq tem (copy-sequence tem))
3918 ;; Use prin1 to fake RFC822 quoting 3918 ;; Use prin1 to fake RFC 822 (or later) quoting
3919 (let ((field (prin1-to-string tem))) 3919 (let ((field (prin1-to-string tem)))
3920 ;; Wrap it in parens to make it a comment according to RFC822 3920 ;; Wrap it in parens to make it a comment.
3921 (if date 3921 (if date
3922 (concat "(" field "'s message of " date ")") 3922 (concat "(" field "'s message of " date ")")
3923 (concat "(" field ")")))))) 3923 (concat "(" field ")"))))))
@@ -3946,7 +3946,7 @@ which is an element of rmail-msgref-vector."
3946 (if message-id 3946 (if message-id
3947 ;; "<AA259@bar.edu> (message from Unix Loser on 1-Apr-89)" 3947 ;; "<AA259@bar.edu> (message from Unix Loser on 1-Apr-89)"
3948 (concat message-id " (" field ")") 3948 (concat message-id " (" field ")")
3949 ;; Wrap in parens to make it a comment, for RFC822. 3949 ;; Wrap in parens to make it a comment.
3950 (concat "(" field ")"))))) 3950 (concat "(" field ")")))))
3951 (t 3951 (t
3952 ;; If we can't kludge it simply, do it correctly 3952 ;; If we can't kludge it simply, do it correctly
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el
index 9315d6ac627..93b6c90521b 100644
--- a/lisp/mail/sendmail.el
+++ b/lisp/mail/sendmail.el
@@ -150,7 +150,7 @@ Otherwise, let mailer send back a message to report errors."
150 'smtpmail-send-it 'sendmail-query-once) 150 'smtpmail-send-it 'sendmail-query-once)
151 "Function to call to send the current buffer as mail. 151 "Function to call to send the current buffer as mail.
152The headers should be delimited by a line which is 152The headers should be delimited by a line which is
153not a valid RFC822 header or continuation line, 153not a valid RFC 822 (or later) header or continuation line,
154that matches the variable `mail-header-separator'. 154that matches the variable `mail-header-separator'.
155This is used by the default mail-sending commands. See also 155This is used by the default mail-sending commands. See also
156`message-send-mail-function' for use with the Message package." 156`message-send-mail-function' for use with the Message package."
@@ -908,7 +908,7 @@ the user from the mailer."
908 (ml (when mail-mailing-lists 908 (ml (when mail-mailing-lists
909 ;; The surrounding regexp assumes the use of 909 ;; The surrounding regexp assumes the use of
910 ;; `mail-strip-quoted-names' on addresses before matching 910 ;; `mail-strip-quoted-names' on addresses before matching
911 ;; Cannot deal with full RFC 822 freedom, but that is 911 ;; Cannot deal with full RFC 822 (or later), but that is
912 ;; unlikely to be problematic. 912 ;; unlikely to be problematic.
913 (concat "\\(?:[[:space:];,]\\|\\`\\)" 913 (concat "\\(?:[[:space:];,]\\|\\`\\)"
914 (regexp-opt mail-mailing-lists t) 914 (regexp-opt mail-mailing-lists t)
@@ -1044,7 +1044,7 @@ This function does not perform RFC2047 encoding."
1044 (fullname-end (point-marker))) 1044 (fullname-end (point-marker)))
1045 (goto-char fullname-start) 1045 (goto-char fullname-start)
1046 ;; Look for a character that cannot appear unquoted 1046 ;; Look for a character that cannot appear unquoted
1047 ;; according to RFC 822. 1047 ;; according to RFC 822 (or later).
1048 (if (or (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]" 1048 (if (or (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
1049 fullname-end 1) 1049 fullname-end 1)
1050 quote-fullname) 1050 quote-fullname)
@@ -1068,8 +1068,7 @@ This function does not perform RFC2047 encoding."
1068 (insert "\"")) 1068 (insert "\""))
1069 (let ((fullname-end (point-marker))) 1069 (let ((fullname-end (point-marker)))
1070 (goto-char fullname-start) 1070 (goto-char fullname-start)
1071 ;; RFC 822 says \ and nonmatching parentheses 1071 ;; \ and nonmatching parentheses must be escaped in comments.
1072 ;; must be escaped in comments.
1073 ;; Escape every instance of ()\ ... 1072 ;; Escape every instance of ()\ ...
1074 (while (re-search-forward "[()\\]" fullname-end 1) 1073 (while (re-search-forward "[()\\]" fullname-end 1)
1075 (replace-match "\\\\\\&" t)) 1074 (replace-match "\\\\\\&" t))
diff --git a/lisp/mail/smtpmail.el b/lisp/mail/smtpmail.el
index 49645aba7a1..f31e0b45d20 100644
--- a/lisp/mail/smtpmail.el
+++ b/lisp/mail/smtpmail.el
@@ -259,7 +259,7 @@ for `smtpmail-try-auth-method'.")
259 (fullname-end (point-marker))) 259 (fullname-end (point-marker)))
260 (goto-char fullname-start) 260 (goto-char fullname-start)
261 ;; Look for a character that cannot appear unquoted 261 ;; Look for a character that cannot appear unquoted
262 ;; according to RFC 822. 262 ;; according to RFC 822 or its successors.
263 (if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]" 263 (if (re-search-forward "[^- !#-'*+/-9=?A-Z^-~]"
264 fullname-end 1) 264 fullname-end 1)
265 (progn 265 (progn
@@ -277,8 +277,9 @@ for `smtpmail-try-auth-method'.")
277 (insert fullname) 277 (insert fullname)
278 (let ((fullname-end (point-marker))) 278 (let ((fullname-end (point-marker)))
279 (goto-char fullname-start) 279 (goto-char fullname-start)
280 ;; RFC 822 says \ and nonmatching parentheses 280 ;; RFC 822 and its successors say \ and
281 ;; must be escaped in comments. 281 ;; nonmatching parentheses must be
282 ;; escaped in comments.
282 ;; Escape every instance of ()\ ... 283 ;; Escape every instance of ()\ ...
283 (while (re-search-forward "[()\\]" fullname-end 1) 284 (while (re-search-forward "[()\\]" fullname-end 1)
284 (replace-match "\\\\\\&" t)) 285 (replace-match "\\\\\\&" t))
diff --git a/lisp/mail/supercite.el b/lisp/mail/supercite.el
index 10c61cb65ab..ad69dca8c43 100644
--- a/lisp/mail/supercite.el
+++ b/lisp/mail/supercite.el
@@ -315,7 +315,7 @@ during the initial citing via `sc-cite-original'."
315 :group 'supercite-hooks) 315 :group 'supercite-hooks)
316 316
317(defcustom sc-mail-warn-if-non-rfc822-p t 317(defcustom sc-mail-warn-if-non-rfc822-p t
318 "Warn if mail headers don't conform to RFC822." 318 "Warn if mail headers don't conform to RFC 822 (or later)."
319 :type 'boolean 319 :type 'boolean
320 :group 'supercite-attr) 320 :group 'supercite-attr)
321(defcustom sc-mumble "" 321(defcustom sc-mumble ""
@@ -738,10 +738,10 @@ If optional ATTRIBS-P is non-nil, the key/value pair is placed in
738 nil) 738 nil)
739 739
740(defun sc-mail-error-in-mail-field () 740(defun sc-mail-error-in-mail-field ()
741 "Issue warning that mail headers don't conform to RFC 822." 741 "Issue warning that mail headers don't conform to email RFCs."
742 (let* ((len (min (length curline) 10)) 742 (let* ((len (min (length curline) 10))
743 (ellipsis (if (< len (length curline)) "..." "")) 743 (ellipsis (if (< len (length curline)) "..." ""))
744 (msg "Mail header \"%s%s\" doesn't conform to RFC 822. skipping...")) 744 (msg "Mail header \"%s%s\" doesn't conform to RFC 822 (or later). skipping..."))
745 (message msg (substring curline 0 len) ellipsis)) 745 (message msg (substring curline 0 len) ellipsis))
746 (beep) 746 (beep)
747 (sit-for 2) 747 (sit-for 2)