]> git.eshelyaron.com Git - emacs.git/commitdiff
* facemenu.el (facemenu-read-color): Use a completion function
authorChong Yidong <cyd@stupidchicken.com>
Sun, 16 Aug 2009 05:25:21 +0000 (05:25 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Sun, 16 Aug 2009 05:25:21 +0000 (05:25 +0000)
that accepts any defined color, such as RGB triplets (Bug#3677).

lisp/ChangeLog
lisp/facemenu.el

index 6961e82c6d2d07ba1c001b18ec9ce9c113167359..c47ebd92123ba0033358738d16703d3f82e85870 100644 (file)
@@ -1,5 +1,8 @@
 2009-08-16  Chong Yidong  <cyd@stupidchicken.com>
 
+       * facemenu.el (facemenu-read-color): Use a completion function
+       that accepts any defined color, such as RGB triplets (Bug#3677).
+
        * files.el (get-free-disk-space): Change fallback default
        directory to /.  Expand DIR argument before switching to fallback.
        Suggested by Kevin Ryde (Bug#2631, Bug#3911).
index a9f4f729edd847f6916ae611bd1f0e7200c0ace9..7da1c37fcbe3fdf6b8a027cb2c36a7a31d4805a3 100644 (file)
@@ -460,11 +460,17 @@ These special properties include `invisible', `intangible' and `read-only'."
 (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)))