aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Yidong2005-11-17 16:31:22 +0000
committerChong Yidong2005-11-17 16:31:22 +0000
commit6586e9c94964b658cfa424c5a1c30516baaa974d (patch)
tree5dc9a1be3a2c2757e642c276744b4ca36ddbefb5
parent4ea0018b7fd298525be4b9eb54d720a74e2f18a1 (diff)
downloademacs-6586e9c94964b658cfa424c5a1c30516baaa974d.tar.gz
emacs-6586e9c94964b658cfa424c5a1c30516baaa974d.zip
* message.el (message-courtesy-message)
(message-mark-insert-begin, message-mark-insert-end) (message-elide-ellipsis, message-cancel-message) (message-add-header, message-change-subject) (message-cross-post-followup-to-header) (message-cross-post-insert-note, message-reduce-to-to-cc) (message-widen-reply, message-delete-not-region) (message-kill-to-signature, message-insert-signature) (message-insert-importance-high, message-insert-importance-low) (message-insert-or-toggle-importance) (message-insert-disposition-notification-to) (message-indent-citation, message-yank-original) (message-cite-original-without-signature, message-cite-original) (message-insert-citation-line, message-position-on-field) (message-fix-before-sending, message-send-mail-partially) (message-send-mail, message-send-mail-with-sendmail) (message-send-mail-with-qmail, message-send-news) (message-check-news-header-syntax, message-generate-headers) (message-insert-courtesy-copy, message-fill-address) (message-fill-header, message-shorten-references) (message-setup-1, message-cancel-news) (message-forward-make-body-plain) (message-forward-make-body-mime) (message-forward-make-body-mml) (message-encode-message-body) (message-forward-make-body-digest-plain) (message-forward-make-body-digest-mime) (message-use-alternative-email-as-from): Insert `hard-newline' instead of ordinary newlines.
-rw-r--r--lisp/gnus/ChangeLog30
-rw-r--r--lisp/gnus/message.el175
2 files changed, 131 insertions, 74 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index f197ea11940..10e5ba0dc88 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,33 @@
12005-11-17 Chong Yidong <cyd@stupidchicken.com>
2
3 * message.el (message-courtesy-message)
4 (message-mark-insert-begin, message-mark-insert-end)
5 (message-elide-ellipsis, message-cancel-message)
6 (message-add-header, message-change-subject)
7 (message-cross-post-followup-to-header)
8 (message-cross-post-insert-note, message-reduce-to-to-cc)
9 (message-widen-reply, message-delete-not-region)
10 (message-kill-to-signature, message-insert-signature)
11 (message-insert-importance-high, message-insert-importance-low)
12 (message-insert-or-toggle-importance)
13 (message-insert-disposition-notification-to)
14 (message-indent-citation, message-yank-original)
15 (message-cite-original-without-signature, message-cite-original)
16 (message-insert-citation-line, message-position-on-field)
17 (message-fix-before-sending, message-send-mail-partially)
18 (message-send-mail, message-send-mail-with-sendmail)
19 (message-send-mail-with-qmail, message-send-news)
20 (message-check-news-header-syntax, message-generate-headers)
21 (message-insert-courtesy-copy, message-fill-address)
22 (message-fill-header, message-shorten-references)
23 (message-setup-1, message-cancel-news)
24 (message-forward-make-body-plain) (message-forward-make-body-mime)
25 (message-forward-make-body-mml) (message-encode-message-body)
26 (message-forward-make-body-digest-plain)
27 (message-forward-make-body-digest-mime)
28 (message-use-alternative-email-as-from): Insert `hard-newline'
29 instead of ordinary newlines.
30
12005-11-09 Katsumi Yamaoka <yamaoka@jpl.org> 312005-11-09 Katsumi Yamaoka <yamaoka@jpl.org>
2 32
3 * message.el (message-generate-headers): Downcase the argument 33 * message.el (message-generate-headers): Downcase the argument
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 019b5bd4f07..9a5f910290a 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -141,7 +141,11 @@ mailbox format."
141 :group 'message-sending) 141 :group 'message-sending)
142 142
143(defcustom message-courtesy-message 143(defcustom message-courtesy-message
144 "The following message is a courtesy copy of an article\nthat has been posted to %s as well.\n\n" 144 (concat
145 "The following message is a courtesy copy of an article"
146 hard-newline
147 "that has been posted to %s as well."
148 hard-newline hard-newline)
145 "*This is inserted at the start of a mailed copy of a posted message. 149 "*This is inserted at the start of a mailed copy of a posted message.
146If the string contains the format spec \"%s\", the Newsgroups 150If the string contains the format spec \"%s\", the Newsgroups
147the article has been posted to will be inserted there. 151the article has been posted to will be inserted there.
@@ -339,7 +343,9 @@ few false positives here."
339;;; marking inserted text 343;;; marking inserted text
340 344
341(defcustom message-mark-insert-begin 345(defcustom message-mark-insert-begin
342 "--8<---------------cut here---------------start------------->8---\n" 346 (concat
347 "--8<---------------cut here---------------start------------->8---"
348 hard-newline)
343 "How to mark the beginning of some inserted text." 349 "How to mark the beginning of some inserted text."
344 :version "22.1" 350 :version "22.1"
345 :type 'string 351 :type 'string
@@ -347,14 +353,16 @@ few false positives here."
347 :group 'message-various) 353 :group 'message-various)
348 354
349(defcustom message-mark-insert-end 355(defcustom message-mark-insert-end
350 "--8<---------------cut here---------------end--------------->8---\n" 356 (concat
357 "--8<---------------cut here---------------end--------------->8---"
358 hard-newline)
351 "How to mark the end of some inserted text." 359 "How to mark the end of some inserted text."
352 :version "22.1" 360 :version "22.1"
353 :type 'string 361 :type 'string
354 :link '(custom-manual "(message)Insertion Variables") 362 :link '(custom-manual "(message)Insertion Variables")
355 :group 'message-various) 363 :group 'message-various)
356 364
357(defcustom message-archive-header "X-No-Archive: Yes\n" 365(defcustom message-archive-header "X-No-Archive: Yes"
358 "Header to insert when you don't want your article to be archived. 366 "Header to insert when you don't want your article to be archived.
359Archives \(such as groups.google.com\) respect this header." 367Archives \(such as groups.google.com\) respect this header."
360 :version "22.1" 368 :version "22.1"
@@ -418,7 +426,8 @@ for `message-cross-post-insert-note'."
418 :link '(custom-manual "(message)Various Message Variables") 426 :link '(custom-manual "(message)Various Message Variables")
419 :group 'message-various) 427 :group 'message-various)
420 428
421(defcustom message-elide-ellipsis "\n[...]\n\n" 429(defcustom message-elide-ellipsis
430 (concat hard-newline "[...]" hard-newline hard-newline)
422 "*The string which is inserted for elided text." 431 "*The string which is inserted for elided text."
423 :type 'string 432 :type 'string
424 :link '(custom-manual "(message)Various Commands") 433 :link '(custom-manual "(message)Various Commands")
@@ -578,7 +587,8 @@ Done before generating the new subject of a forward."
578 :link '(custom-manual "(message)Insertion Variables") 587 :link '(custom-manual "(message)Insertion Variables")
579 :type 'regexp) 588 :type 'regexp)
580 589
581(defcustom message-cancel-message "I am canceling my own article.\n" 590(defcustom message-cancel-message
591 (concat "I am canceling my own article." hard-newline)
582 "Message to be inserted in the cancel message." 592 "Message to be inserted in the cancel message."
583 :group 'message-interface 593 :group 'message-interface
584 :link '(custom-manual "(message)Canceling News") 594 :link '(custom-manual "(message)Canceling News")
@@ -1734,7 +1744,7 @@ see `message-narrow-to-headers-or-head'."
1734 (goto-char (point-max)) 1744 (goto-char (point-max))
1735 (if (string-match "\n$" (car headers)) 1745 (if (string-match "\n$" (car headers))
1736 (insert (car headers)) 1746 (insert (car headers))
1737 (insert (car headers) ?\n))))) 1747 (insert (car headers) hard-newline)))))
1738 (setq headers (cdr headers)))) 1748 (setq headers (cdr headers))))
1739 1749
1740(defmacro message-with-reply-buffer (&rest forms) 1750(defmacro message-with-reply-buffer (&rest forms)
@@ -1841,7 +1851,7 @@ Leading \"Re: \" is not stripped by this function. Use the function
1841 (insert (concat "Subject: " 1851 (insert (concat "Subject: "
1842 new-subject 1852 new-subject
1843 " (was: " 1853 " (was: "
1844 old-subject ")\n"))))))))) 1854 old-subject ")" hard-newline)))))))))
1845 1855
1846(defun message-mark-inserted-region (beg end) 1856(defun message-mark-inserted-region (beg end)
1847 "Mark some region in the current article with enclosing tags. 1857 "Mark some region in the current article with enclosing tags.
@@ -1925,7 +1935,7 @@ With prefix-argument just set Follow-Up, don't cross-post."
1925 target-group 1935 target-group
1926 "[ \t]*$") 1936 "[ \t]*$")
1927 (message-fetch-field "Newsgroups"))) 1937 (message-fetch-field "Newsgroups")))
1928 (insert (concat "\nFollowup-To: " target-group))) 1938 (insert (concat hard-newline "Followup-To: " target-group)))
1929 (setq message-cross-post-old-target target-group)) 1939 (setq message-cross-post-old-target target-group))
1930 1940
1931(defun message-cross-post-insert-note (target-group cross-post in-old 1941(defun message-cross-post-insert-note (target-group cross-post in-old
@@ -1957,8 +1967,8 @@ been made to before the user asked for a Crosspost."
1957 (if (or in-old 1967 (if (or in-old
1958 (not cross-post) 1968 (not cross-post)
1959 (string-match "^[ \t]*poster[ \t]*$" target-group)) 1969 (string-match "^[ \t]*poster[ \t]*$" target-group))
1960 (insert (concat message-followup-to-note target-group "\n")) 1970 (insert message-followup-to-note target-group hard-newline)
1961 (insert (concat message-cross-post-note target-group "\n"))))) 1971 (insert message-cross-post-note target-group hard-newline))))
1962 1972
1963(defun message-cross-post-followup-to (target-group) 1973(defun message-cross-post-followup-to (target-group)
1964 "Crossposts message and set Followup-To to TARGET-GROUP. 1974 "Crossposts message and set Followup-To to TARGET-GROUP.
@@ -2018,7 +2028,7 @@ With prefix-argument just set Follow-Up, don't cross-post."
2018 (save-excursion 2028 (save-excursion
2019 (message-goto-to) 2029 (message-goto-to)
2020 (message-delete-line) 2030 (message-delete-line)
2021 (insert (concat "To: " cc-content "\n")) 2031 (insert (concat "To: " cc-content hard-newline))
2022 (save-restriction 2032 (save-restriction
2023 (message-narrow-to-headers) 2033 (message-narrow-to-headers)
2024 (message-remove-header (if bcc 2034 (message-remove-header (if bcc
@@ -2783,7 +2793,7 @@ or in the synonym headers, defined by `message-header-synonyms'."
2783 (message-remove-header (symbol-name (car elem))) 2793 (message-remove-header (symbol-name (car elem)))
2784 (goto-char (point-min)) 2794 (goto-char (point-min))
2785 (insert (symbol-name (car elem)) ": " 2795 (insert (symbol-name (car elem)) ": "
2786 (cdr elem) "\n")))))) 2796 (cdr elem) hard-newline))))))
2787 2797
2788(defun message-insert-newsgroups () 2798(defun message-insert-newsgroups ()
2789 "Insert the Newsgroups header from the article being replied to." 2799 "Insert the Newsgroups header from the article being replied to."
@@ -2813,7 +2823,7 @@ or in the synonym headers, defined by `message-header-synonyms'."
2813 (point) 2823 (point)
2814 (forward-line -2) 2824 (forward-line -2)
2815 (point))) 2825 (point)))
2816 (insert "\n") 2826 (insert hard-newline)
2817 (goto-char beg) 2827 (goto-char beg)
2818 (delete-region beg (progn (message-goto-body) 2828 (delete-region beg (progn (message-goto-body)
2819 (forward-line 2) 2829 (forward-line 2)
@@ -2832,7 +2842,7 @@ or in the synonym headers, defined by `message-header-synonyms'."
2832 (end-of-line -1)) 2842 (end-of-line -1))
2833 (kill-region point (point)) 2843 (kill-region point (point))
2834 (unless (bolp) 2844 (unless (bolp)
2835 (insert "\n")))) 2845 (insert hard-newline))))
2836 2846
2837(defun message-newline-and-reformat (&optional arg not-break) 2847(defun message-newline-and-reformat (&optional arg not-break)
2838 "Insert four newlines, and then reformat if inside quoted text. 2848 "Insert four newlines, and then reformat if inside quoted text.
@@ -2974,15 +2984,15 @@ Prefix arg means justify as well."
2974 (goto-char (point-max)) 2984 (goto-char (point-max))
2975 ;; Insert the signature. 2985 ;; Insert the signature.
2976 (unless (bolp) 2986 (unless (bolp)
2977 (insert "\n")) 2987 (insert hard-newline))
2978 (when message-signature-insert-empty-line 2988 (when message-signature-insert-empty-line
2979 (insert "\n")) 2989 (insert hard-newline))
2980 (insert "-- \n") 2990 (insert "-- " hard-newline)
2981 (if (eq signature t) 2991 (if (eq signature t)
2982 (insert-file-contents message-signature-file) 2992 (insert-file-contents message-signature-file)
2983 (insert signature)) 2993 (insert signature))
2984 (goto-char (point-max)) 2994 (goto-char (point-max))
2985 (or (bolp) (insert "\n"))))) 2995 (or (bolp) (insert hard-newline)))))
2986 2996
2987(defun message-insert-importance-high () 2997(defun message-insert-importance-high ()
2988 "Insert header to mark message as important." 2998 "Insert header to mark message as important."
@@ -2992,7 +3002,7 @@ Prefix arg means justify as well."
2992 (message-narrow-to-headers) 3002 (message-narrow-to-headers)
2993 (message-remove-header "Importance")) 3003 (message-remove-header "Importance"))
2994 (message-goto-eoh) 3004 (message-goto-eoh)
2995 (insert "Importance: high\n"))) 3005 (insert "Importance: high" hard-newline)))
2996 3006
2997(defun message-insert-importance-low () 3007(defun message-insert-importance-low ()
2998 "Insert header to mark message as unimportant." 3008 "Insert header to mark message as unimportant."
@@ -3002,7 +3012,7 @@ Prefix arg means justify as well."
3002 (message-narrow-to-headers) 3012 (message-narrow-to-headers)
3003 (message-remove-header "Importance")) 3013 (message-remove-header "Importance"))
3004 (message-goto-eoh) 3014 (message-goto-eoh)
3005 (insert "Importance: low\n"))) 3015 (insert "Importance: low" hard-newline)))
3006 3016
3007(defun message-insert-or-toggle-importance () 3017(defun message-insert-or-toggle-importance ()
3008 "Insert a \"Importance: high\" header, or cycle through the header values. 3018 "Insert a \"Importance: high\" header, or cycle through the header values.
@@ -3024,7 +3034,7 @@ and `low'."
3024 (t 3034 (t
3025 "high"))))) 3035 "high")))))
3026 (message-goto-eoh) 3036 (message-goto-eoh)
3027 (insert (format "Importance: %s\n" new))))) 3037 (insert (format "Importance: %s" new) hard-newline))))
3028 3038
3029(defun message-insert-disposition-notification-to () 3039(defun message-insert-disposition-notification-to ()
3030 "Request a disposition notification (return receipt) to this message. 3040 "Request a disposition notification (return receipt) to this message.
@@ -3035,10 +3045,11 @@ Note that this should not be used in newsgroups."
3035 (message-narrow-to-headers) 3045 (message-narrow-to-headers)
3036 (message-remove-header "Disposition-Notification-To")) 3046 (message-remove-header "Disposition-Notification-To"))
3037 (message-goto-eoh) 3047 (message-goto-eoh)
3038 (insert (format "Disposition-Notification-To: %s\n" 3048 (insert (format "Disposition-Notification-To: %s"
3039 (or (message-field-value "Reply-to") 3049 (or (message-field-value "Reply-to")
3040 (message-field-value "From") 3050 (message-field-value "From")
3041 (message-make-from)))))) 3051 (message-make-from)))
3052 hard-newline)))
3042 3053
3043(defun message-elide-region (b e) 3054(defun message-elide-region (b e)
3044 "Elide the text in the region. 3055 "Elide the text in the region.
@@ -3173,7 +3184,7 @@ However, if `message-yank-prefix' is non-nil, insert that prefix on each line."
3173 ;; Delete blank lines at the end of the buffer. 3184 ;; Delete blank lines at the end of the buffer.
3174 (goto-char (point-max)) 3185 (goto-char (point-max))
3175 (unless (eolp) 3186 (unless (eolp)
3176 (insert "\n")) 3187 (insert hard-newline))
3177 (while (and (zerop (forward-line -1)) 3188 (while (and (zerop (forward-line -1))
3178 (looking-at "$")) 3189 (looking-at "$"))
3179 (message-delete-line)) 3190 (message-delete-line))
@@ -3211,7 +3222,7 @@ prefix, and don't delete any headers."
3211 (funcall message-cite-function)) 3222 (funcall message-cite-function))
3212 (message-exchange-point-and-mark) 3223 (message-exchange-point-and-mark)
3213 (unless (bolp) 3224 (unless (bolp)
3214 (insert ?\n)) 3225 (insert hard-newline))
3215 (unless modified 3226 (unless modified
3216 (setq message-checksum (message-checksum)))))) 3227 (setq message-checksum (message-checksum))))))
3217 3228
@@ -3269,13 +3280,13 @@ prefix, and don't delete any headers."
3269 (delete-region (point) end) 3280 (delete-region (point) end)
3270 (unless (search-backward "\n\n" start t) 3281 (unless (search-backward "\n\n" start t)
3271 ;; Insert a blank line if it is peeled off. 3282 ;; Insert a blank line if it is peeled off.
3272 (insert "\n"))) 3283 (insert hard-newline)))
3273 (goto-char start) 3284 (goto-char start)
3274 (while functions 3285 (while functions
3275 (funcall (pop functions))) 3286 (funcall (pop functions)))
3276 (when message-citation-line-function 3287 (when message-citation-line-function
3277 (unless (bolp) 3288 (unless (bolp)
3278 (insert "\n")) 3289 (insert hard-newline))
3279 (funcall message-citation-line-function)))) 3290 (funcall message-citation-line-function))))
3280 3291
3281(eval-when-compile (defvar mail-citation-hook)) ;Compiler directive 3292(eval-when-compile (defvar mail-citation-hook)) ;Compiler directive
@@ -3311,13 +3322,14 @@ prefix, and don't delete any headers."
3311 (funcall (pop functions))) 3322 (funcall (pop functions)))
3312 (when message-citation-line-function 3323 (when message-citation-line-function
3313 (unless (bolp) 3324 (unless (bolp)
3314 (insert "\n")) 3325 (insert hard-newline))
3315 (funcall message-citation-line-function))))) 3326 (funcall message-citation-line-function)))))
3316 3327
3317(defun message-insert-citation-line () 3328(defun message-insert-citation-line ()
3318 "Insert a simple citation line." 3329 "Insert a simple citation line."
3319 (when message-reply-headers 3330 (when message-reply-headers
3320 (insert (mail-header-from message-reply-headers) " writes:\n\n"))) 3331 (insert (mail-header-from message-reply-headers)
3332 " writes:" hard-newline hard-newline)))
3321 3333
3322(defun message-position-on-field (header &rest afters) 3334(defun message-position-on-field (header &rest afters)
3323 (let ((case-fold-search t)) 3335 (let ((case-fold-search t))
@@ -3343,7 +3355,7 @@ prefix, and don't delete any headers."
3343 (when afters 3355 (when afters
3344 (re-search-forward "^[^ \t]" nil 'move) 3356 (re-search-forward "^[^ \t]" nil 'move)
3345 (beginning-of-line)) 3357 (beginning-of-line))
3346 (insert header ": \n") 3358 (insert header ": " hard-newline)
3347 (forward-char -1) 3359 (forward-char -1)
3348 nil)))) 3360 nil))))
3349 3361
@@ -3539,7 +3551,7 @@ It should typically alter the sending method in some way or other."
3539 ;; Make sure there's a newline at the end of the message. 3551 ;; Make sure there's a newline at the end of the message.
3540 (goto-char (point-max)) 3552 (goto-char (point-max))
3541 (unless (bolp) 3553 (unless (bolp)
3542 (insert "\n")) 3554 (insert hard-newline))
3543 ;; Make the hidden headers visible. 3555 ;; Make the hidden headers visible.
3544 (let ((points (message-text-with-property 'message-hidden))) 3556 (let ((points (message-text-with-property 'message-hidden)))
3545 (when points 3557 (when points
@@ -3644,7 +3656,7 @@ It should typically alter the sending method in some way or other."
3644 (goto-char (point-min)) 3656 (goto-char (point-min))
3645 (re-search-forward 3657 (re-search-forward
3646 (concat "^" (regexp-quote mail-header-separator) "\n")) 3658 (concat "^" (regexp-quote mail-header-separator) "\n"))
3647 (replace-match "\n") 3659 (replace-match hard-newline)
3648 (run-hooks 'message-send-mail-hook) 3660 (run-hooks 'message-send-mail-hook)
3649 (let ((p (goto-char (point-min))) 3661 (let ((p (goto-char (point-min)))
3650 (tembuf (message-generate-new-buffer-clone-locals " message temp")) 3662 (tembuf (message-generate-new-buffer-clone-locals " message temp"))
@@ -3686,17 +3698,18 @@ It should typically alter the sending method in some way or other."
3686 (message-remove-header "Message-ID") 3698 (message-remove-header "Message-ID")
3687 (message-remove-header "Lines") 3699 (message-remove-header "Lines")
3688 (goto-char (point-max)) 3700 (goto-char (point-max))
3689 (insert "Mime-Version: 1.0\n") 3701 (insert "Mime-Version: 1.0" hard-newline)
3690 (setq header (buffer-string))) 3702 (setq header (buffer-string)))
3691 (goto-char (point-max)) 3703 (goto-char (point-max))
3692 (insert (format "Content-Type: message/partial; id=\"%s\"; number=%d; total=%d\n\n" 3704 (insert (format "Content-Type: message/partial; id=\"%s\"; number=%d; total=%d"
3693 id n total)) 3705 id n total)
3706 hard-newline hard-newline)
3694 (forward-char -1) 3707 (forward-char -1)
3695 (let ((mail-header-separator "")) 3708 (let ((mail-header-separator ""))
3696 (when (memq 'Message-ID message-required-mail-headers) 3709 (when (memq 'Message-ID message-required-mail-headers)
3697 (insert "Message-ID: " (message-make-message-id) "\n")) 3710 (insert "Message-ID: " (message-make-message-id) hard-newline))
3698 (when (memq 'Lines message-required-mail-headers) 3711 (when (memq 'Lines message-required-mail-headers)
3699 (insert "Lines: " (message-make-lines) "\n")) 3712 (insert "Lines: " (message-make-lines) hard-newline))
3700 (message-goto-subject) 3713 (message-goto-subject)
3701 (end-of-line) 3714 (end-of-line)
3702 (insert (format " (%d/%d)" n total)) 3715 (insert (format " (%d/%d)" n total))
@@ -3761,7 +3774,7 @@ It should typically alter the sending method in some way or other."
3761 (goto-char (point-max)) 3774 (goto-char (point-max))
3762 ;; require one newline at the end. 3775 ;; require one newline at the end.
3763 (or (= (preceding-char) ?\n) 3776 (or (= (preceding-char) ?\n)
3764 (insert ?\n)) 3777 (insert hard-newline))
3765 (message-cleanup-headers) 3778 (message-cleanup-headers)
3766 ;; FIXME: we're inserting the courtesy copy after encoding. 3779 ;; FIXME: we're inserting the courtesy copy after encoding.
3767 ;; This is wrong if the courtesy copy string contains 3780 ;; This is wrong if the courtesy copy string contains
@@ -3837,7 +3850,7 @@ If you always want Gnus to send messages in one piece, set
3837 (goto-char (point-min)) 3850 (goto-char (point-min))
3838 (re-search-forward 3851 (re-search-forward
3839 (concat "^" (regexp-quote mail-header-separator) "\n")) 3852 (concat "^" (regexp-quote mail-header-separator) "\n"))
3840 (replace-match "\n") 3853 (replace-match hard-newline)
3841 (backward-char 1) 3854 (backward-char 1)
3842 (setq delimline (point-marker)) 3855 (setq delimline (point-marker))
3843 (run-hooks 'message-send-mail-hook) 3856 (run-hooks 'message-send-mail-hook)
@@ -3899,7 +3912,7 @@ to find out how to use this."
3899 (goto-char (point-min)) 3912 (goto-char (point-min))
3900 (re-search-forward 3913 (re-search-forward
3901 (concat "^" (regexp-quote mail-header-separator) "\n")) 3914 (concat "^" (regexp-quote mail-header-separator) "\n"))
3902 (replace-match "\n") 3915 (replace-match hard-newline)
3903 (run-hooks 'message-send-mail-hook) 3916 (run-hooks 'message-send-mail-hook)
3904 ;; send the message 3917 ;; send the message
3905 (case 3918 (case
@@ -4067,13 +4080,13 @@ Otherwise, generate and save a value for `canlock-password' first."
4067 (goto-char (point-max)) 4080 (goto-char (point-max))
4068 ;; require one newline at the end. 4081 ;; require one newline at the end.
4069 (or (= (preceding-char) ?\n) 4082 (or (= (preceding-char) ?\n)
4070 (insert ?\n)) 4083 (insert hard-newline))
4071 (let ((case-fold-search t)) 4084 (let ((case-fold-search t))
4072 ;; Remove the delimiter. 4085 ;; Remove the delimiter.
4073 (goto-char (point-min)) 4086 (goto-char (point-min))
4074 (re-search-forward 4087 (re-search-forward
4075 (concat "^" (regexp-quote mail-header-separator) "\n")) 4088 (concat "^" (regexp-quote mail-header-separator) "\n"))
4076 (replace-match "\n") 4089 (replace-match hard-newline)
4077 (backward-char 1)) 4090 (backward-char 1))
4078 (run-hooks 'message-send-news-hook) 4091 (run-hooks 'message-send-news-hook)
4079 (gnus-open-server method) 4092 (gnus-open-server method)
@@ -4200,7 +4213,7 @@ Otherwise, generate and save a value for `canlock-password' first."
4200 (message-tokenize-header 4213 (message-tokenize-header
4201 newsgroups))))))))) 4214 newsgroups)))))))))
4202 (goto-char (point-min)) 4215 (goto-char (point-min))
4203 (insert "Followup-To: " to "\n")) 4216 (insert "Followup-To: " to hard-newline))
4204 t)) 4217 t))
4205 ;; Check "Shoot me". 4218 ;; Check "Shoot me".
4206 (message-check 'shoot 4219 (message-check 'shoot
@@ -5099,7 +5112,7 @@ Headers already prepared in the buffer are not modified."
5099 ;; We check whether the value was ended by a 5112 ;; We check whether the value was ended by a
5100 ;; newline. If now, we insert one. 5113 ;; newline. If now, we insert one.
5101 (unless (bolp) 5114 (unless (bolp)
5102 (insert "\n")) 5115 (insert hard-newline))
5103 (forward-line -1))) 5116 (forward-line -1)))
5104 ;; The value of this header was empty, so we clear 5117 ;; The value of this header was empty, so we clear
5105 ;; totally and insert the new value. 5118 ;; totally and insert the new value.
@@ -5139,7 +5152,7 @@ Headers already prepared in the buffer are not modified."
5139 (beginning-of-line)) 5152 (beginning-of-line))
5140 (when (or (message-news-p) 5153 (when (or (message-news-p)
5141 (string-match "@.+\\.." secure-sender)) 5154 (string-match "@.+\\.." secure-sender))
5142 (insert "Sender: " secure-sender "\n")))) 5155 (insert "Sender: " secure-sender hard-newline))))
5143 ;; Check for IDNA 5156 ;; Check for IDNA
5144 (message-idna-to-ascii-rhs)))) 5157 (message-idna-to-ascii-rhs))))
5145 5158
@@ -5151,7 +5164,7 @@ Headers already prepared in the buffer are not modified."
5151 (message-narrow-to-headers) 5164 (message-narrow-to-headers)
5152 (when (setq newsgroups (message-fetch-field "newsgroups")) 5165 (when (setq newsgroups (message-fetch-field "newsgroups"))
5153 (goto-char (point-max)) 5166 (goto-char (point-max))
5154 (insert "Posted-To: " newsgroups "\n"))) 5167 (insert "Posted-To: " newsgroups hard-newline)))
5155 (forward-line 1) 5168 (forward-line 1)
5156 (when message-courtesy-message 5169 (when message-courtesy-message
5157 (cond 5170 (cond
@@ -5170,7 +5183,7 @@ Headers already prepared in the buffer are not modified."
5170 (insert (capitalize (symbol-name header)) 5183 (insert (capitalize (symbol-name header))
5171 ": " 5184 ": "
5172 (if (consp value) (car value) value) 5185 (if (consp value) (car value) value)
5173 "\n") 5186 hard-newline)
5174 (narrow-to-region (point-min) (1- (point-max))) 5187 (narrow-to-region (point-min) (1- (point-max)))
5175 (let (quoted last) 5188 (let (quoted last)
5176 (goto-char (point-min)) 5189 (goto-char (point-min))
@@ -5184,7 +5197,7 @@ Headers already prepared in the buffer are not modified."
5184 (progn 5197 (progn
5185 (save-excursion 5198 (save-excursion
5186 (goto-char last) 5199 (goto-char last)
5187 (insert "\n\t")) 5200 (insert hard-newline "\t"))
5188 (setq last (1+ (point)))) 5201 (setq last (1+ (point))))
5189 (setq last (1+ (point))))) 5202 (setq last (1+ (point)))))
5190 (setq quoted (not quoted))) 5203 (setq quoted (not quoted)))
@@ -5210,7 +5223,7 @@ If the current line has `message-yank-prefix', insert it on the new line."
5210 (insert (capitalize (symbol-name header)) 5223 (insert (capitalize (symbol-name header))
5211 ": " 5224 ": "
5212 (if (consp value) (car value) value) 5225 (if (consp value) (car value) value)
5213 "\n") 5226 hard-newline)
5214 (save-restriction 5227 (save-restriction
5215 (narrow-to-region begin (point)) 5228 (narrow-to-region begin (point))
5216 (fill-region-as-paragraph begin (point)) 5229 (fill-region-as-paragraph begin (point))
@@ -5279,7 +5292,7 @@ than 988 characters long, and if they are not, trim them until they are."
5279 (let ((refstring (mapconcat #'identity refs " "))) 5292 (let ((refstring (mapconcat #'identity refs " ")))
5280 (if (and message-this-is-news message-cater-to-broken-inn) 5293 (if (and message-this-is-news message-cater-to-broken-inn)
5281 (insert (capitalize (symbol-name header)) ": " 5294 (insert (capitalize (symbol-name header)) ": "
5282 refstring "\n") 5295 refstring hard-newline)
5283 (message-fill-header header refstring))))) 5296 (message-fill-header header refstring)))))
5284 5297
5285(defun message-position-point () 5298(defun message-position-point ()
@@ -5508,18 +5521,18 @@ are not included."
5508 (delete-region (point) (progn (forward-line -1) (point))) 5521 (delete-region (point) (progn (forward-line -1) (point)))
5509 (when message-default-headers 5522 (when message-default-headers
5510 (insert message-default-headers) 5523 (insert message-default-headers)
5511 (or (bolp) (insert ?\n))) 5524 (or (bolp) (insert hard-newline)))
5512 (put-text-property 5525 (put-text-property
5513 (point) 5526 (point)
5514 (progn 5527 (progn
5515 (insert mail-header-separator "\n") 5528 (insert mail-header-separator hard-newline)
5516 (1- (point))) 5529 (1- (point)))
5517 'read-only nil) 5530 'read-only nil)
5518 (forward-line -1) 5531 (forward-line -1)
5519 (when (message-news-p) 5532 (when (message-news-p)
5520 (when message-default-news-headers 5533 (when message-default-news-headers
5521 (insert message-default-news-headers) 5534 (insert message-default-news-headers)
5522 (or (bolp) (insert ?\n))) 5535 (or (bolp) (insert hard-newline)))
5523 (when message-generate-headers-first 5536 (when message-generate-headers-first
5524 (message-generate-headers 5537 (message-generate-headers
5525 (message-headers-to-generate 5538 (message-headers-to-generate
@@ -5530,7 +5543,7 @@ are not included."
5530 (when (message-mail-p) 5543 (when (message-mail-p)
5531 (when message-default-mail-headers 5544 (when message-default-mail-headers
5532 (insert message-default-mail-headers) 5545 (insert message-default-mail-headers)
5533 (or (bolp) (insert ?\n))) 5546 (or (bolp) (insert hard-newline)))
5534 (save-restriction 5547 (save-restriction
5535 (message-narrow-to-headers) 5548 (message-narrow-to-headers)
5536 (if message-alternative-emails 5549 (if message-alternative-emails
@@ -6012,14 +6025,14 @@ If ARG, allow editing of the cancellation message."
6012 (message-news) 6025 (message-news)
6013 (setq buf (set-buffer (get-buffer-create " *message cancel*")))) 6026 (setq buf (set-buffer (get-buffer-create " *message cancel*"))))
6014 (erase-buffer) 6027 (erase-buffer)
6015 (insert "Newsgroups: " newsgroups "\n" 6028 (insert "Newsgroups: " newsgroups hard-newline
6016 "From: " from "\n" 6029 "From: " from hard-newline
6017 "Subject: cmsg cancel " message-id "\n" 6030 "Subject: cmsg cancel " message-id hard-newline
6018 "Control: cancel " message-id "\n" 6031 "Control: cancel " message-id hard-newline
6019 (if distribution 6032 (if distribution
6020 (concat "Distribution: " distribution "\n") 6033 (concat "Distribution: " distribution hard-newline)
6021 "") 6034 "")
6022 mail-header-separator "\n" 6035 mail-header-separator hard-newline
6023 message-cancel-message) 6036 message-cancel-message)
6024 (run-hooks 'message-cancel-hook) 6037 (run-hooks 'message-cancel-hook)
6025 (unless arg 6038 (unless arg
@@ -6208,7 +6221,9 @@ Optional DIGEST will use digest to forward."
6208 6221
6209(defun message-forward-make-body-plain (forward-buffer) 6222(defun message-forward-make-body-plain (forward-buffer)
6210 (insert 6223 (insert
6211 "\n-------------------- Start of forwarded message --------------------\n") 6224 hard-newline
6225 "-------------------- Start of forwarded message --------------------"
6226 hard-newline)
6212 (let ((b (point)) e) 6227 (let ((b (point)) e)
6213 (insert 6228 (insert
6214 (with-temp-buffer 6229 (with-temp-buffer
@@ -6224,7 +6239,9 @@ Optional DIGEST will use digest to forward."
6224 (buffer-string))) 6239 (buffer-string)))
6225 (setq e (point)) 6240 (setq e (point))
6226 (insert 6241 (insert
6227 "\n-------------------- End of forwarded message --------------------\n") 6242 hard-newline
6243 "-------------------- End of forwarded message --------------------"
6244 hard-newline)
6228 (when message-forward-ignored-headers 6245 (when message-forward-ignored-headers
6229 (save-restriction 6246 (save-restriction
6230 (narrow-to-region b e) 6247 (narrow-to-region b e)
@@ -6234,7 +6251,10 @@ Optional DIGEST will use digest to forward."
6234 (message-remove-header message-forward-ignored-headers t))))) 6251 (message-remove-header message-forward-ignored-headers t)))))
6235 6252
6236(defun message-forward-make-body-mime (forward-buffer) 6253(defun message-forward-make-body-mime (forward-buffer)
6237 (insert "\n\n<#part type=message/rfc822 disposition=inline raw=t>\n") 6254 (insert
6255 hard-newline hard-newline
6256 "<#part type=message/rfc822 disposition=inline raw=t>"
6257 hard-newline)
6238 (let ((b (point)) e) 6258 (let ((b (point)) e)
6239 (save-restriction 6259 (save-restriction
6240 (narrow-to-region (point) (point)) 6260 (narrow-to-region (point) (point))
@@ -6244,10 +6264,13 @@ Optional DIGEST will use digest to forward."
6244 (replace-match "X-From-Line: ")) 6264 (replace-match "X-From-Line: "))
6245 (goto-char (point-max))) 6265 (goto-char (point-max)))
6246 (setq e (point)) 6266 (setq e (point))
6247 (insert "<#/part>\n"))) 6267 (insert "<#/part>" hard-newline)))
6248 6268
6249(defun message-forward-make-body-mml (forward-buffer) 6269(defun message-forward-make-body-mml (forward-buffer)
6250 (insert "\n\n<#mml type=message/rfc822 disposition=inline>\n") 6270 (insert
6271 hard-newline hard-newline
6272 "<#mml type=message/rfc822 disposition=inline>"
6273 hard-newline)
6251 (let ((b (point)) e) 6274 (let ((b (point)) e)
6252 (if (not message-forward-decoded-p) 6275 (if (not message-forward-decoded-p)
6253 (insert 6276 (insert
@@ -6270,7 +6293,7 @@ Optional DIGEST will use digest to forward."
6270 (replace-match "X-From-Line: ")) 6293 (replace-match "X-From-Line: "))
6271 (goto-char (point-max)))) 6294 (goto-char (point-max))))
6272 (setq e (point)) 6295 (setq e (point))
6273 (insert "<#/mml>\n") 6296 (insert "<#/mml>" hard-newline)
6274 (when (and (not message-forward-decoded-p) 6297 (when (and (not message-forward-decoded-p)
6275 message-forward-ignored-headers) 6298 message-forward-ignored-headers)
6276 (save-restriction 6299 (save-restriction
@@ -6282,19 +6305,23 @@ Optional DIGEST will use digest to forward."
6282 6305
6283(defun message-forward-make-body-digest-plain (forward-buffer) 6306(defun message-forward-make-body-digest-plain (forward-buffer)
6284 (insert 6307 (insert
6285 "\n-------------------- Start of forwarded message --------------------\n") 6308 hard-newline
6309 "-------------------- Start of forwarded message --------------------"
6310 hard-newline)
6286 (let ((b (point)) e) 6311 (let ((b (point)) e)
6287 (mml-insert-buffer forward-buffer) 6312 (mml-insert-buffer forward-buffer)
6288 (setq e (point)) 6313 (setq e (point))
6289 (insert 6314 (insert
6290 "\n-------------------- End of forwarded message --------------------\n"))) 6315 hard-newline
6316 "-------------------- End of forwarded message --------------------"
6317 hard-newline)))
6291 6318
6292(defun message-forward-make-body-digest-mime (forward-buffer) 6319(defun message-forward-make-body-digest-mime (forward-buffer)
6293 (insert "\n<#multipart type=digest>\n") 6320 (insert hard-newline "<#multipart type=digest>" hard-newline)
6294 (let ((b (point)) e) 6321 (let ((b (point)) e)
6295 (insert-buffer-substring forward-buffer) 6322 (insert-buffer-substring forward-buffer)
6296 (setq e (point)) 6323 (setq e (point))
6297 (insert "<#/multipart>\n") 6324 (insert "<#/multipart>" hard-newline)
6298 (save-restriction 6325 (save-restriction
6299 (narrow-to-region b e) 6326 (narrow-to-region b e)
6300 (goto-char b) 6327 (goto-char b)
@@ -6799,7 +6826,7 @@ regexp VARSTR."
6799 (message-narrow-to-headers-or-head) 6826 (message-narrow-to-headers-or-head)
6800 (message-remove-header "Mime-Version") 6827 (message-remove-header "Mime-Version")
6801 (goto-char (point-max)) 6828 (goto-char (point-max))
6802 (insert "MIME-Version: 1.0\n") 6829 (insert "MIME-Version: 1.0" hard-newline)
6803 (when lines 6830 (when lines
6804 (insert lines)) 6831 (insert lines))
6805 (setq content-type-p 6832 (setq content-type-p
@@ -6819,7 +6846,7 @@ regexp VARSTR."
6819 ;; For unknown reason, MIME-Version doesn't exist. 6846 ;; For unknown reason, MIME-Version doesn't exist.
6820 (when (re-search-forward "^MIME-Version:" nil t) 6847 (when (re-search-forward "^MIME-Version:" nil t)
6821 (forward-line 1) 6848 (forward-line 1)
6822 (insert "Content-Type: text/plain; charset=us-ascii\n")))))) 6849 (insert "Content-Type: text/plain; charset=us-ascii" hard-newline))))))
6823 6850
6824(defun message-read-from-minibuffer (prompt &optional initial-contents) 6851(defun message-read-from-minibuffer (prompt &optional initial-contents)
6825 "Read from the minibuffer while providing abbrev expansion." 6852 "Read from the minibuffer while providing abbrev expansion."
@@ -6848,7 +6875,7 @@ regexp VARSTR."
6848 (pop emails)) 6875 (pop emails))
6849 (unless (or (not email) (equal email user-mail-address)) 6876 (unless (or (not email) (equal email user-mail-address))
6850 (goto-char (point-max)) 6877 (goto-char (point-max))
6851 (insert "From: " email "\n")))) 6878 (insert "From: " email hard-newline))))
6852 6879
6853(defun message-options-get (symbol) 6880(defun message-options-get (symbol)
6854 (cdr (assq symbol message-options))) 6881 (cdr (assq symbol message-options)))