Add docstrings
[gnus] / lisp / mml.el
index 43e86cb..7314675 100644 (file)
@@ -128,6 +128,14 @@ It is necessary to work against a bug in certain clients."
   :type 'boolean
   :group 'message)
 
+(defcustom mml-enable-flowed t
+  "If non-nil, enable format=flowed usage when encoding a message.
+This is only performed when filling on text/plain with hard
+newlines in the text."
+  :version "24.1"
+  :type 'boolean
+  :group 'message)
+
 (defvar mml-tweak-type-alist nil
   "A list of (TYPE . FUNCTION) for tweaking MML parts.
 TYPE is a string containing a regexp to match the MIME type.  FUNCTION
@@ -546,7 +554,8 @@ If MML is non-nil, return the buffer up till the correspondent mml tag."
                    ;; in the mml tag or it says "flowed" and there
                    ;; actually are hard newlines in the text.
                    (let (use-hard-newlines)
-                     (when (and (string= type "text/plain")
+                     (when (and mml-enable-flowed
+                                 (string= type "text/plain")
                                 (not (string= (cdr (assq 'sign cont)) "pgp"))
                                 (or (null (assq 'format cont))
                                     (string= (cdr (assq 'format cont))
@@ -1457,6 +1466,7 @@ or the `pop-to-buffer' function."
   (require 'gnus-msg)                ; for gnus-setup-posting-charset
   (save-excursion
     (let* ((buf (current-buffer))
+          (article-editing (eq major-mode 'gnus-article-edit-mode))
           (message-options message-options)
           (message-this-is-mail (message-mail-p))
           (message-this-is-news (message-news-p))
@@ -1476,15 +1486,19 @@ or the `pop-to-buffer' function."
       (mml-preview-insert-mail-followup-to)
       (let ((message-deletable-headers (if (message-news-p)
                                           nil
-                                        message-deletable-headers)))
+                                        message-deletable-headers))
+           (mail-header-separator (if article-editing
+                                      ""
+                                    mail-header-separator)))
        (message-generate-headers
         (copy-sequence (if (message-news-p)
                            message-required-news-headers
-                         message-required-mail-headers))))
-      (if (re-search-forward
-          (concat "^" (regexp-quote mail-header-separator) "\n") nil t)
-         (replace-match "\n"))
-      (let ((mail-header-separator ""));; mail-header-separator is removed.
+                         message-required-mail-headers)))
+       (unless article-editing
+         (if (re-search-forward
+              (concat "^" (regexp-quote mail-header-separator) "\n") nil t)
+             (replace-match "\n"))
+         (setq mail-header-separator ""))
        (message-sort-headers)
        (mml-to-mime))
       (if raw