* wl-draft.el (wl-draft-save):
[elisp/wanderlust.git] / wl / wl-draft.el
index 347f514..9168336 100644 (file)
@@ -1037,7 +1037,8 @@ non-nil."
          (when session (elmo-network-close-session session)))
       (error
        (elmo-network-close-session session)
-       (signal (car error)(cdr error)))))
+       (unless (string= (nth 1 error) "Unplugged")
+        (signal (car error)(cdr error))))))
   (wl-draft-send-mail-with-smtp))
 
 (defun wl-draft-insert-required-fields (&optional force-msgid)
@@ -1236,7 +1237,9 @@ Derived from `message-save-drafts' in T-gnus."
                  (goto-char (point-max))
                  (insert (if (eq (char-before) ?\n) "" "\n")
                          mail-header-separator "\n"))))
-           (mime-edit-translate-buffer)
+           (let ((mime-header-encode-method-alist
+                  '((eword-encode-unstructured-field-body))))
+             (mime-edit-translate-buffer))
            (wl-draft-get-header-delimiter t)))
        (set-buffer-modified-p nil)
        (wl-draft-config-info-operation
@@ -1484,8 +1487,6 @@ Derived from `message-save-drafts' in T-gnus."
     (make-local-variable 'truncate-partial-width-windows)
     (setq truncate-partial-width-windows nil)
     (setq truncate-lines wl-draft-truncate-lines)
-    ;; Don't care about supersession.
-    (setq buffer-file-name nil)
     (setq wl-sent-message-via nil)
     (setq wl-sent-message-queued nil)
     (setq wl-draft-buffer-file-name file-name)
@@ -1539,9 +1540,11 @@ Derived from `message-save-drafts' in T-gnus."
     (error "wl-draft-create-header must be use in wl-draft-mode."))
   (let (change-major-mode-hook)
     (wl-draft-editor-mode)
+    (add-hook 'local-write-file-hooks 'wl-draft-save)
     (wl-draft-overload-functions)
     (wl-highlight-headers 'for-draft)
-    (wl-draft-save)))
+    (wl-draft-save)
+    (clear-visited-file-modtime)))
 
 (defun wl-draft-decode-header ()
   (save-excursion
@@ -1702,20 +1705,15 @@ Derived from `message-save-drafts' in T-gnus."
            "^\\(Content-.*\\|Mime-Version\\):"))
        (wl-draft-decode-message-in-buffer))
       (wl-draft-insert-mail-header-separator)
-      (if wl-draft-use-frame
-         (switch-to-buffer-other-frame buffer)
-       (switch-to-buffer buffer))
-      (set-buffer buffer)
       (if (not (string-match (regexp-quote wl-draft-folder)
                             (buffer-name)))
          (rename-buffer (concat wl-draft-folder "/" (buffer-name))))
       (auto-save-mode -1)
       (wl-draft-mode)
-      ;; Don't care about supersession.
+      (setq buffer-file-name file-name)
       (make-local-variable 'truncate-partial-width-windows)
       (setq truncate-partial-width-windows nil)
       (setq truncate-lines wl-draft-truncate-lines)
-      (setq buffer-file-name nil)
       (setq wl-sent-message-via nil)
       (setq wl-sent-message-queued nil)
       (setq wl-draft-buffer-file-name file-name)
@@ -1723,6 +1721,7 @@ Derived from `message-save-drafts' in T-gnus."
       (goto-char (point-min))
       (wl-draft-overload-functions)
       (wl-draft-editor-mode)
+      (add-hook 'local-write-file-hooks 'wl-draft-save)
       (wl-highlight-headers 'for-draft)
       (run-hooks 'wl-draft-reedit-hook)
       (goto-char (point-max))