Synch up with main trunk, and prepare the release 2.12.0.
[elisp/wanderlust.git] / wl / wl-draft.el
index 5d5e661..ce725e6 100644 (file)
@@ -152,15 +152,10 @@ e.g.
                 "\n"
               smtp-end-of-line))
            smtp-sasl-user-name smtp-sasl-properties sasl-read-passphrase)
-       (if (and (string= (car smtp-sasl-mechanisms) "DIGEST-MD5")
-               ;; sendmail bug?
-               (string-match "^\\([^@]*\\)@\\([^@]*\\)"
-                             wl-smtp-posting-user))
-          (setq smtp-sasl-user-name (match-string 1 wl-smtp-posting-user)
-                smtp-sasl-properties (list 'realm
-                                           (match-string 2 wl-smtp-posting-user)))
-        (setq smtp-sasl-user-name wl-smtp-posting-user
-              smtp-sasl-properties nil))
+       (setq smtp-sasl-user-name wl-smtp-posting-user
+            smtp-sasl-properties (when wl-smtp-authenticate-realm
+                                   (list 'realm
+                                         wl-smtp-authenticate-realm)))
        (setq sasl-read-passphrase
             (function
              (lambda (prompt)
@@ -278,14 +273,11 @@ e.g.
   (let (references parent-folder subject)
     (with-current-buffer summary-buf
       (setq parent-folder (wl-summary-buffer-folder-name)))
-    (with-temp-buffer                  ; to keep raw buffer unibyte.
-      (set-buffer-multibyte default-enable-multibyte-characters)
-      (let ((decoder (mime-find-field-decoder 'Subject 'plain)))
-       (setq subject (wl-draft-reply-make-subject
-                      (if (and original-subject decoder)
-                          (funcall decoder original-subject) original-subject)))))
-    (setq subject (wl-draft-forward-make-subject subject))
+    (let ((decoder (mime-find-field-decoder 'Subject 'plain)))
+      (setq subject (if (and original-subject decoder)
+                       (funcall decoder original-subject) original-subject)))
     (with-current-buffer (wl-message-get-original-buffer)
+      (setq subject (wl-draft-forward-make-subject subject))
       (setq references (nconc
                        (std11-field-bodies '("References" "In-Reply-To"))
                        (list (std11-field-body "Message-Id"))))
@@ -386,9 +378,8 @@ Reply to author if WITH-ARG is non-nil."
     (with-temp-buffer                  ; to keep raw buffer unibyte.
       (set-buffer-multibyte default-enable-multibyte-characters)
       (setq decoder (mime-find-field-decoder 'Subject 'plain))
-      (setq subject (wl-draft-reply-make-subject
-                    (if (and subject decoder)
-                        (funcall decoder subject) subject)))
+      (setq subject (if (and subject decoder)
+                       (funcall decoder subject) subject))
       (setq to-alist
            (mapcar
             (lambda (addr)
@@ -403,6 +394,7 @@ Reply to author if WITH-ARG is non-nil."
               (cons (nth 1 (std11-extract-address-components addr))
                     (if decoder (funcall decoder addr) addr)))
             cc)))
+    (setq subject (wl-draft-reply-make-subject subject))
     (setq in-reply-to (std11-field-body "Message-Id"))
     (setq references (nconc
                      (std11-field-bodies '("References" "In-Reply-To"))
@@ -1370,7 +1362,8 @@ If KILL-WHEN-DONE is non-nil, current draft buffer is killed"
            ;; If flag is set after send-function, the current mailbox
            ;; might changed by Fcc.
            ;; It causes a huge loss in the IMAP folder.
-           (when (and parent-flag parent-number parent-folder)
+           (when (and parent-flag parent-number
+                      (not (eq (length parent-folder) 0)))
              (wl-folder-set-persistent-mark
               parent-folder parent-number parent-flag))
            (funcall wl-draft-send-function editing-buffer kill-when-done)