Mercurial > emacs
diff lisp/facemenu.el @ 104294:6ee860194ef5
* facemenu.el (facemenu-read-color): Use a completion function
that accepts any defined color, such as RGB triplets (Bug#3677).
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 16 Aug 2009 05:25:21 +0000 |
parents | 7fb0884440b3 |
children | ea3a6d116908 |
line wrap: on
line diff
--- a/lisp/facemenu.el Sun Aug 16 03:16:33 2009 +0000 +++ b/lisp/facemenu.el Sun Aug 16 05:25:21 2009 +0000 @@ -460,11 +460,17 @@ (defun facemenu-read-color (&optional prompt) "Read a color using the minibuffer." (let* ((completion-ignore-case t) - (require-match (not (eq window-system 'ns))) - (col (completing-read (or prompt "Color: ") - (or facemenu-color-alist - (defined-colors)) - nil require-match))) + (color-list (or facemenu-color-alist (defined-colors))) + (completer + (lambda (string pred all-completions) + (if all-completions + (or (all-completions string color-list pred) + (if (color-defined-p string) + (list string))) + (or (try-completion string color-list pred) + (if (color-defined-p string) + string))))) + (col (completing-read (or prompt "Color: ") completer nil t))) (if (equal "" col) nil col)))