* ptexinfmt.el: Use lexical binding.
[elisp/wanderlust.git] / utils / im-wl.el
index 496a818..5f9e954 100644 (file)
@@ -27,7 +27,7 @@
 
 ;;  General settings:
 ;;  (autoload 'wl-draft-send-with-imput-async "im-wl")
-;;  (setq wl-draft-send-func 'wl-draft-send-with-imput-async)
+;;  (setq wl-draft-send-function 'wl-draft-send-with-imput-async)
 ;;
 ;;  for Nifty4U+ users:
 ;;  (add-hook 'wl-mail-setup-hook '(lambda () (require 'im-wl)))
@@ -36,7 +36,7 @@
 ;;           ;; to avoid header-encoding.
 ;;           ;; [cf.  slrn-ja-0.9.4.6.jp4/doc/README.macros.euc]
 ;;           ;(eword-field-encoding-method-alist . '((t .  iso-2022-jp-2)))
-;;           (wl-draft-send-func . 'wl-draft-send-with-imput-async)
+;;           (wl-draft-send-function . 'wl-draft-send-with-imput-async)
 ;;           (im-wl-dispatcher . '("~/nifty4u-plus/inews-nifty4u" "-h"))
 ;;           (im-wl-dispatcher-error-msg
 ;;            . (format "^%s :" (expand-file-name (car im-wl-dispatcher)))))))
@@ -75,12 +75,20 @@ This is most commonly `imput(impost)' or `inews-nifty4u'.")
   (let (buffer-process process-connection-type watch-buffer
        (sending-buffer (current-buffer))
        (error-msg-regexp im-wl-dispatcher-error-msg)
-       (msg (save-excursion
-              (set-buffer editing-buffer)
-              (or wl-draft-buffer-file-name
-                  (setq wl-draft-buffer-file-name
-                        (expand-file-name
-                         im-wl-default-temp-file-name))))))
+       (number wl-draft-buffer-message-number)
+       msg)
+    (with-current-buffer editing-buffer
+      (if (elmo-message-file-p
+          (wl-folder-get-elmo-folder wl-draft-folder)
+          number)
+         (setq msg
+               (elmo-message-file-name
+                (wl-folder-get-elmo-folder wl-draft-folder)
+                number))
+       (with-temp-file (setq msg (make-temp-file "im-wl"))
+         (elmo-message-fetch (wl-folder-get-elmo-folder wl-draft-folder)
+                             number (elmo-make-fetch-strategy 'entire)
+                             nil (current-buffer)))))
     ;; current buffer is raw buffer.
     (save-excursion
       (goto-char (point-max))
@@ -97,7 +105,7 @@ This is most commonly `imput(impost)' or `inews-nifty4u'.")
          (when (and wl-insert-message-id
                     (not (re-search-forward "^Message-ID[ \t]*:" nil t)))
            (insert (concat "Message-ID: "
-                           (wl-draft-make-message-id-string) "\n")))
+                           (funcall wl-message-id-function) "\n")))
          ;; Insert date field.
          (goto-char (point-min))
          (or (re-search-forward "^Date[ \t]*:" nil t)