Mercurial > emacs
changeset 101937:e6f035f6e27e
(rmail-make-label): Doc fix.
(rmail-read-label): Add current labels to completion list. (Bug#2222)
(rmail-set-label): Use `or'.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Wed, 11 Feb 2009 04:01:35 +0000 |
parents | 696b3e7c297b |
children | 0c901689da73 |
files | lisp/mail/rmailkwd.el |
diffstat | 1 files changed, 17 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/rmailkwd.el Wed Feb 11 03:59:52 2009 +0000 +++ b/lisp/mail/rmailkwd.el Wed Feb 11 04:01:35 2009 +0000 @@ -39,7 +39,7 @@ rmail-attr-array) (defun rmail-make-label (s) - "Convert string S to a downcased symbol in `rmail-label-obarray'." + "Intern string S as a downcased symbol in `rmail-label-obarray'." (intern (downcase s) rmail-label-obarray)) ;;;###autoload @@ -64,16 +64,20 @@ Completions are chosen from `rmail-label-obarray'. The default is `rmail-last-label', if that is non-nil. Updates `rmail-last-label' according to the choice made, and returns a symbol." - (let ((result - (completing-read (concat prompt - (if rmail-last-label - (concat " (default " - (symbol-name rmail-last-label) - "): ") - ": ")) - rmail-label-obarray - nil - nil))) + (let* ((old (rmail-get-keywords)) + (result + (progn + ;; Offer any existing labels as choices. + (if old (mapc 'rmail-make-label (split-string old ", "))) + (completing-read (concat prompt + (if rmail-last-label + (concat " (default " + (symbol-name rmail-last-label) + "): ") + ": ")) + rmail-label-obarray + nil + nil)))) (if (string= result "") rmail-last-label (setq rmail-last-label (rmail-make-label result))))) @@ -86,7 +90,7 @@ (or (stringp label) (setq label (symbol-name label))) (with-current-buffer rmail-buffer (rmail-maybe-set-message-counters) - (if (not msg) (setq msg rmail-current-message)) + (or msg (setq msg rmail-current-message)) ;; Force recalculation of summary for this message. (aset rmail-summary-vector (1- msg) nil) (let (attr-index) @@ -123,8 +127,7 @@ before) (t (concat before ", " after)))))))))) (if (rmail-summary-exists) - (rmail-select-summary - (rmail-summary-update-line msg))) + (rmail-select-summary (rmail-summary-update-line msg))) (if (= msg rmail-current-message) (rmail-display-labels))))