(wl-draft (list (cons 'To "")
(cons 'Subject subject)
(cons 'References references))
- nil nil nil nil parent-folder))
- (setq wl-draft-parent-number number)
+ nil nil nil nil parent-folder number))
(goto-char (point-max))
(wl-draft-insert-message)
(mail-position-on-field "To")
(cons 'In-Reply-To in-reply-to)
(cons 'References references)
(cons 'Mail-Followup-To mail-followup-to))
- nil nil nil nil parent-folder)
- (setq wl-draft-parent-number number)
+ nil nil nil nil parent-folder number)
(setq wl-draft-reply-buffer buf)
(setq wl-draft-config-variables
(append wl-draft-parent-variables
(defun wl-draft (&optional header-alist
content-type content-transfer-encoding
body edit-again
- parent-folder)
+ parent-folder
+ parent-number)
"Write and send mail/news message with Wanderlust."
(interactive)
(require 'wl)
(wl-set-save-drafts)
(let (buffer header-alist-internal)
- (setq buffer (wl-draft-create-buffer parent-folder))
+ (setq buffer (wl-draft-create-buffer parent-folder parent-number))
(unless (cdr (assq 'From header-alist))
(setq header-alist
(append (list (cons 'From wl-from)) header-alist)))
(goto-char (point-max))))
buffer))
-(defun wl-draft-create-buffer (&optional parent-folder)
+(defun wl-draft-create-buffer (&optional parent-folder parent-number)
(let* ((draft-folder (wl-draft-get-folder))
(parent-folder (or parent-folder (wl-summary-buffer-folder-name)))
(summary-buf (wl-summary-get-buffer parent-folder))
(setq wl-sent-message-queued nil)
(setq wl-draft-config-exec-flag t)
(setq wl-draft-parent-folder (or parent-folder ""))
+ (setq wl-draft-parent-number parent-number)
(or (eq this-command 'wl-folder-write-current-folder)
(setq wl-draft-buffer-cur-summary-buffer summary-buf))
buffer))
(goto-char (point-max))
(insert (concat field ": " content "\n"))))))))
+(defsubst wl-draft-config-info-filename (number msgdb-dir)
+ (expand-file-name
+ (format "%s-%d" wl-draft-config-save-filename number)
+ msgdb-dir))
+
(defun wl-draft-config-info-operation (msg operation)
(let* ((msgdb-dir (elmo-folder-msgdb-path (wl-draft-get-folder)))
- (filename
- (expand-file-name
- (format "%s-%d" wl-draft-config-save-filename msg)
- msgdb-dir))
+ (filename (wl-draft-config-info-filename msg msgdb-dir))
element alist variable)
(cond
((eq operation 'save)
(setq wl-draft-parent-flag flag)
(wl-draft-config-info-operation wl-draft-buffer-message-number 'save)))
+(defun wl-draft-buffer-change-number (old-number new-number)
+ (when (eq wl-draft-buffer-message-number old-number)
+ (setq wl-draft-buffer-message-number new-number)
+ (rename-buffer (format "%s/%d" wl-draft-folder new-number))
+ (setq buffer-file-name (buffer-name))
+ (set-buffer-modified-p nil)))
+
+(defun wl-draft-rename-saved-config (old-number new-number)
+ (let* ((msgdb-dir (elmo-folder-msgdb-path (wl-draft-get-folder)))
+ (old-name (wl-draft-config-info-filename old-number msgdb-dir))
+ (new-name (wl-draft-config-info-filename new-number msgdb-dir)))
+ (when (file-exists-p old-name)
+ (rename-file old-name new-name 'ok-if-already-exists))))
+
(require 'product)
(product-provide (provide 'wl-draft) (require 'wl-version))