]> git.eshelyaron.com Git - emacs.git/commitdiff
Handle empty string as mail-header-separator
authorRichard Stallman <rms@gnu.org>
Wed, 12 May 2021 02:56:54 +0000 (22:56 -0400)
committerRichard Stallman <rms@gnu.org>
Wed, 12 May 2021 02:56:54 +0000 (22:56 -0400)
* lisp/mail/sendmail.el (mail-mode):
(mail-sendmail-undelimit-header): Handle mail-header-separator empty.
(mail-send): Search for mail-header-separator as entire contents of line.

lisp/mail/sendmail.el

index a64f0869981c866cdee2ccf4c15e82952447a6dd..c9596344ccc4b13fb26a08c09ba4f3c7632aeda3 100644 (file)
@@ -726,14 +726,21 @@ Turning on Mail mode runs the normal hooks `text-mode-hook' and
   ;; Lines containing just >= 3 dashes, perhaps after whitespace,
   ;; are also sometimes used and should be separators.
   (setq paragraph-separate
-       (concat (regexp-quote mail-header-separator)
+        (if (zerop (length mail-header-separator))
+           (concat
                ;; This is based on adaptive-fill-regexp (presumably
                ;; the idea is to allow navigation etc of cited paragraphs).
-               "$\\|\t*[-–!|#%;>*·•‣⁃◦ ]+$"
+               "\t*[-–!|#%;>*·•‣⁃◦ ]+$"
                "\\|[ \t]*[-[:alnum:]]*>+[ \t]*$\\|[ \t]*$\\|"
                "--\\( \\|-+\\)$\\|"
-               page-delimiter)))
-
+               page-delimiter)
+         (concat (regexp-quote mail-header-separator)
+                  ;; This is based on adaptive-fill-regexp (presumably
+                  ;; the idea is to allow navigation etc of cited paragraphs).
+                  "$\\|\t*[-–!|#%;>*·•‣⁃◦ ]+$"
+                  "\\|[ \t]*[-[:alnum:]]*>+[ \t]*$\\|[ \t]*$\\|"
+                  "--\\( \\|-+\\)$\\|"
+                  page-delimiter))))
 
 (defun mail-header-end ()
   "Return the buffer location of the end of headers, as a number."
@@ -763,10 +770,11 @@ Concretely: replace the first blank line in the header with the separator."
   "Remove header separator to put the message in correct form for sendmail.
 Leave point at the start of the delimiter line."
   (goto-char (point-min))
-  (when (re-search-forward
-        (concat "^" (regexp-quote mail-header-separator) "\n")
-        nil t)
-    (replace-match "\n"))
+  (unless (zerop (length mail-header-separator))
+    (when (re-search-forward
+           (concat "^" (regexp-quote mail-header-separator) "\n")
+           nil t)
+      (replace-match "\n")))
   (rfc822-goto-eoh))
 
 (defun mail-mode-auto-fill ()
@@ -931,7 +939,9 @@ the user from the mailer."
                (error "Message contains non-ASCII characters"))))
        ;; Complain about any invalid line.
        (goto-char (point-min))
-       (re-search-forward (regexp-quote mail-header-separator) (point-max) t)
+        ;; Search for mail-header-eeparator as whole line.
+       (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$")
+                           (point-max) t)
        (let ((header-end (or (match-beginning 0) (point-max))))
          (goto-char (point-min))
          (while (< (point) header-end)