diff options
Diffstat (limited to 'lisp/cus-edit.el')
-rw-r--r-- | lisp/cus-edit.el | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el index bbc3f2b8ad2..ba0758b6781 100644 --- a/lisp/cus-edit.el +++ b/lisp/cus-edit.el @@ -1065,22 +1065,25 @@ suggest to customized that face, if it's customizable." Interactively, when point is on text which has a face specified, suggest to customized that face, if it's customizable." (interactive - (list - (let ((face (get-char-property (point) 'face))) - (if (and face (symbolp face)) - (completing-read (format "Customize face (default `%s'): " face) - obarray 'custom-facep t nil nil (symbol-name face)) - (completing-read "Customize face (default all): " - obarray 'custom-facep t))))) - (if (or (null symbol) (and (stringp symbol) (zerop (length symbol)))) - () - (if (stringp symbol) - (setq symbol (intern symbol))) - (unless (symbolp symbol) - (error "Should be a symbol %S" symbol)) + (list (read-face-name "Customize face" "all faces" t))) + (if (member face '(nil "")) + (setq face (face-list))) + (if (and (listp face) (null (cdr face))) + (setq face (car face))) + (if (listp face) + (custom-buffer-create-other-window + (custom-sort-items + (mapcar (lambda (s) + (list s 'custom-face)) + face) + t nil) + "*Customize Faces*") + (unless (facep face) + (error "Invalid face %S")) (custom-buffer-create-other-window - (list (list symbol 'custom-face)) - (format "*Customize Face: %s*" (custom-unlispify-tag-name symbol))))) + (list (list face 'custom-face)) + (format "*Customize Face: %s*" + (custom-unlispify-tag-name face))))) ;;;###autoload (defun customize-customized () |