X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=wl%2Fwl-news.el.in;h=dee1fbdda5d3717872d40e42caf0e6274891f36f;hb=b2e555277b2bdb26aab81311036b32a2177a272b;hp=9872ee9fe2179eb1de60536acb54d38bde8bda68;hpb=e9d2074eda134153efdcf3a6b6c112c417846f3e;p=elisp%2Fwanderlust.git diff --git a/wl/wl-news.el.in b/wl/wl-news.el.in index 9872ee9..dee1fbd 100644 --- a/wl/wl-news.el.in +++ b/wl/wl-news.el.in @@ -44,7 +44,8 @@ (if (and (boundp 'current-language-environment) (string-equal "Japanese" (symbol-value 'current-language-environment))) - '("ja" "en") '("en" "ja"))) + '("ja" "en") '("en" "ja")) + "The list of languages to show NEWS. (order sensitive)") (defun wl-news-check () (let* ((updated (not (wl-news-already-current-p)))) @@ -92,7 +93,8 @@ (let ((filename (expand-file-name wl-news-version-file-name elmo-msgdb-directory)) - (tmp-buffer (get-buffer-create " *wl-news-version-tmp*"))) + (tmp-buffer (get-buffer-create " *wl-news-version-tmp*")) + print-length print-level) (set-buffer tmp-buffer) (erase-buffer) (prin1 (cons current-version previous-version) tmp-buffer) @@ -138,7 +140,7 @@ (product-version (product-find 'wl-version)) (car (wl-news-previous-version-load))))) -(defun wl-news-send-news (version news-lang) +(defun wl-news-send-news (version news-lang folder) (require 'wl-draft) (let ((lang (if (listp wl-news-lang) wl-news-lang @@ -169,9 +171,9 @@ (wl-draft-get-header-delimiter t) (setq ret (and (elmo-folder-writable-p - (wl-folder-get-elmo-folder wl-default-folder)) + (wl-folder-get-elmo-folder folder)) (elmo-folder-append-buffer - (wl-folder-get-elmo-folder wl-default-folder) t))) + (wl-folder-get-elmo-folder folder) t))) (wl-draft-hide send-buffer) (wl-draft-delete send-buffer)) ret)) @@ -181,6 +183,8 @@ (defvar wl-news-buf-name "NEWS") (defvar wl-news-mode-map nil) (defvar wl-news-winconf nil) +(defvar wl-news-buffer-oldest-version nil) +(make-variable-buffer-local 'wl-news-buffer-oldest-version) (unless wl-news-mode-map (setq wl-news-mode-map (make-sparse-keymap)) @@ -188,6 +192,7 @@ (define-key wl-news-mode-map "Q" 'wl-news-force-exit) (define-key wl-news-mode-map "\C-xk" 'wl-news-exit) (define-key wl-news-mode-map "a" 'wl-news-show-all) + (define-key wl-news-mode-map "m" 'wl-news-append-to-folder) (define-key wl-news-mode-map "\C-m" 'wl-news-next-line) (define-key wl-news-mode-map " " 'wl-news-next-page)) @@ -213,10 +218,12 @@ (setq wl-news-winconf (current-window-configuration)) (set-buffer (get-buffer-create wl-news-buf-name)) (wl-news-mode) + (setq wl-news-buffer-oldest-version previous-version) (buffer-disable-undo (current-buffer)) ;; insert news (let ((buffer-read-only nil)) (insert "--- Wanderlust NEWS --- press 'a' to show all NEWS\n") + (insert " press 'm' to mail this NEWS to your folder\n") (insert " press 'q' to quit\n") (insert " press 'Q' to force quit\n\n") (while (car lang) @@ -247,32 +254,40 @@ (defun wl-news-exit () (interactive) - (let ((buf)) - (when (setq buf (get-buffer wl-news-buf-name)) - (wl-news-discard-and-mail) + (let* ((oldest-version (cdr (wl-news-previous-version-load))) + (current-version (product-version (product-find 'wl-version))) + (new-old-version current-version) + (buf (get-buffer wl-news-buf-name))) + (when buf + (if (wl-news-check-news oldest-version wl-news-lang) + (if (y-or-n-p "Do you want to see this message again? ") + (progn + (message "Please M-x wl-news if you want to see it.") + (setq new-old-version oldest-version)))) + (wl-news-previous-version-save + current-version new-old-version) + (kill-buffer (current-buffer)) + (if wl-news-winconf + (set-window-configuration wl-news-winconf)) (kill-buffer buf) (if wl-news-winconf (set-window-configuration wl-news-winconf))))) -(defun wl-news-discard-and-mail () +(defun wl-news-append-to-folder () (interactive) - (let* ((oldest-version (cdr (wl-news-previous-version-load))) - (current-version (product-version (product-find 'wl-version))) - (new-old-version current-version)) - (if (wl-news-check-news oldest-version wl-news-lang) - (if (y-or-n-p "Do you want to see this message again? ") - (progn - (message "Please M-x wl-news if you want to see it.") - (setq new-old-version oldest-version)) - (if (y-or-n-p "Do you want this message for a mail? ") - (or (wl-news-send-news oldest-version wl-news-lang) - (error - (format "Cannot append NEWS mail to %s" wl-default-folder)))))) - (wl-news-previous-version-save - current-version new-old-version) - (kill-buffer (current-buffer)) - (if wl-news-winconf - (set-window-configuration wl-news-winconf)))) + (let* ((current-version (product-version (product-find 'wl-version))) + (new-old-version current-version) + (folder wl-default-folder)) + (if (or (and (elmo-folder-writable-p + (wl-folder-get-elmo-folder folder)) + (y-or-n-p (format + "Do you want to append this message to %s ? " + wl-default-folder))) + (setq folder + (wl-summary-read-folder wl-default-folder "to append "))) + (or (wl-news-send-news wl-news-buffer-oldest-version wl-news-lang folder) + (error + (format "Cannot append NEWS mail to %s" folder)))))) (defun wl-news-force-exit () (interactive) @@ -289,4 +304,4 @@ (require 'product) (product-provide (provide 'wl-news) (require 'wl-version)) -;;; wl-news.el ends here \ No newline at end of file +;;; wl-news.el ends here