]> git.eshelyaron.com Git - emacs.git/commitdiff
(read-face-name): Use complete-in-turn complete non-aliases
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 13 Jun 2005 20:47:08 +0000 (20:47 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 13 Jun 2005 20:47:08 +0000 (20:47 +0000)
in preference to face aliases.

lisp/faces.el

index 866f739a13d2b110eab9350889d25e4a113a118d..fcac684b3a1425510489a9cff792349b8b821240 100644 (file)
@@ -1,6 +1,6 @@
 ;;; faces.el --- Lisp faces
 
-;; Copyright (C) 1992,1993,1994,1995,1996,1998,1999,2000,2001,2002,2004
+;; Copyright (C) 1992,1993,1994,1995,1996,1998,1999,2000,2001,2002,2004,2005
 ;;   Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -854,6 +854,8 @@ If MULTIPLE is non-nil, return a list of faces (possibly only one).
 Otherwise, return a single face."
   (let ((faceprop (or (get-char-property (point) 'read-face-name)
                      (get-char-property (point) 'face)))
+        (aliasfaces nil)
+        (nonaliasfaces nil)
        faces)
     ;; Make a list of the named faces that the `face' property uses.
     (if (and (listp faceprop)
@@ -870,6 +872,13 @@ Otherwise, return a single face."
             (memq (intern-soft (thing-at-point 'symbol)) (face-list)))
        (setq faces (list (intern-soft (thing-at-point 'symbol)))))
 
+    ;; Build up the completion tables.
+    (mapatoms (lambda (s)
+                (if (custom-facep s)
+                    (if (get s 'face-alias)
+                        (push (symbol-name s) aliasfaces)
+                      (push (symbol-name s) nonaliasfaces)))))
+
     ;; If we only want one, and the default is more than one,
     ;; discard the unwanted ones now.
     (unless multiple
@@ -883,7 +892,7 @@ Otherwise, return a single face."
                         (if faces (mapconcat 'symbol-name faces ", ")
                           string-describing-default))
               (format "%s: " prompt))
-            obarray 'custom-facep t))
+            (complete-in-turn nonaliasfaces aliasfaces) nil t))
           ;; Canonicalize the output.
           (output
            (if (equal input "")
@@ -2289,5 +2298,5 @@ If that can't be done, return nil."
 
 (provide 'faces)
 
-;;; arch-tag: 19a4759f-2963-445f-b004-425b9aadd7d6
+;; arch-tag: 19a4759f-2963-445f-b004-425b9aadd7d6
 ;;; faces.el ends here