Mercurial > emacs
changeset 101951:22a84dde5ca4
(rmail-read-label): Don't scan for labels if the summary exists, since
it's already done.
author | Glenn Morris <rgm@gnu.org> |
---|---|
date | Thu, 12 Feb 2009 03:28:53 +0000 |
parents | 01bb1ca54bd5 |
children | 3fadcabd5931 |
files | lisp/mail/rmailkwd.el |
diffstat | 1 files changed, 18 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mail/rmailkwd.el Thu Feb 12 03:28:37 2009 +0000 +++ b/lisp/mail/rmailkwd.el Thu Feb 12 03:28:53 2009 +0000 @@ -64,20 +64,24 @@ 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* ((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)))) + (let* ((old nil) + (result + (progn + ;; If the summary exists, we've already read all the + ;; existing labels. If not, read the ones in this message. + (or (eq major-mode 'rmail-summary-mode) + (rmail-summary-exists) + (and (setq old (rmail-get-keywords)) + (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)))))