* wl-mime.el (toplevel): Require wl-vars.
[elisp/wanderlust.git] / wl / wl-draft.el
index 345ad6c..a2dd943 100644 (file)
@@ -30,7 +30,7 @@
 
 ;;; Code:
 ;;
-
+(require 'elmo)
 (require 'sendmail)
 (require 'wl-template)
 (require 'emu)
@@ -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)
@@ -679,11 +674,12 @@ Reply to author if WITH-ARG is non-nil."
        wl-draft-cite-function)
     (unwind-protect
        (progn
-         (elmo-message-fetch (wl-folder-get-elmo-folder fld)
-                             number
-                             ;; No cache.
-                             (elmo-make-fetch-strategy 'entire)
-                             nil mail-reply-buffer)
+         (with-current-buffer mail-reply-buffer
+           (erase-buffer)
+           (elmo-message-fetch (wl-folder-get-elmo-folder fld)
+                               number
+                               ;; No cache.
+                               (elmo-make-fetch-strategy 'entire)))
          (wl-draft-yank-from-mail-reply-buffer nil))
       (kill-buffer mail-reply-buffer))))
 
@@ -1367,7 +1363,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)
@@ -1987,8 +1984,7 @@ If KILL-WHEN-DONE is non-nil, current draft buffer is killed"
        (switch-to-buffer-other-frame buffer)
       (switch-to-buffer buffer))
     (set-buffer buffer)
-    (elmo-message-fetch draft-folder number (elmo-make-fetch-strategy 'entire)
-                       nil (current-buffer))
+    (elmo-message-fetch draft-folder number (elmo-make-fetch-strategy 'entire))
     (elmo-delete-cr-buffer)
     (let ((mime-edit-again-ignored-field-regexp
           "^\\(Content-.*\\|Mime-Version\\):"))
@@ -2366,8 +2362,7 @@ Automatically applied in draft sending time."
                (wl-draft-queue-info-operation (car msgs) 'load)
                (elmo-message-fetch queue-folder
                                    (car msgs)
-                                   (elmo-make-fetch-strategy 'entire)
-                                   nil (current-buffer))
+                                   (elmo-make-fetch-strategy 'entire))
                (condition-case err
                    (setq failure (funcall
                                   wl-draft-queue-flush-send-function