changeset 63382:9cbfa983c1cf

(read-face-name): Use complete-in-turn complete non-aliases in preference to face aliases.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Mon, 13 Jun 2005 20:47:08 +0000
parents 23b1ef64a00e
children 12107da85908
files lisp/faces.el
diffstat 1 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/faces.el	Mon Jun 13 20:45:50 2005 +0000
+++ b/lisp/faces.el	Mon Jun 13 20:47:08 2005 +0000
@@ -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 @@
 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 @@
 	     (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 @@
 			 (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 @@
 
 (provide 'faces)
 
-;;; arch-tag: 19a4759f-2963-445f-b004-425b9aadd7d6
+;; arch-tag: 19a4759f-2963-445f-b004-425b9aadd7d6
 ;;; faces.el ends here