Mercurial > emacs
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