# HG changeset patch # User Richard M. Stallman # Date 1107413236 0 # Node ID d7da3e10bfef9550730ede6606e88b725134e3ed # Parent 83af8894e534d8489f6952db14ba878a1742edd3 (list-faces-display): Add optional argument. diff -r 83af8894e534 -r d7da3e10bfef lisp/faces.el --- a/lisp/faces.el Thu Feb 03 04:28:21 2005 +0000 +++ b/lisp/faces.el Thu Feb 03 06:47:16 2005 +0000 @@ -1143,15 +1143,26 @@ ;; conflict with Lucid, which uses that name differently. (defvar help-xref-stack) -(defun list-faces-display () +(defun list-faces-display (&optional regexp) "List all faces, using the same sample text in each. The sample text is a string that comes from the variable -`list-faces-sample-text'." - (interactive) +`list-faces-sample-text'. + +If REGEXP is non-nil, list only those faces with names matching +this regular expression. When called interactively with a prefix +arg, prompt for a regular expression." + (interactive (list (and current-prefix-arg + (read-string "List faces matching regexp: ")))) (let ((faces (sort (face-list) #'string-lessp)) - (face nil) (frame (selected-frame)) disp-frame window face-name) + (when (> (length regexp) 0) + (setq faces + (delq nil + (mapcar (lambda (f) + (when (string-match regexp (symbol-name f)) + f)) + faces)))) (with-output-to-temp-buffer "*Faces*" (save-excursion (set-buffer standard-output) @@ -1164,9 +1175,7 @@ "\\[help-follow] on a face name to customize it\n" "or on its sample text for a description of the face.\n\n"))) (setq help-xref-stack nil) - (while faces - (setq face (car faces)) - (setq faces (cdr faces)) + (dolist (face faces) (setq face-name (symbol-name face)) (insert (format "%25s " face-name)) ;; Hyperlink to a customization buffer for the face. Using @@ -1208,6 +1217,7 @@ (copy-face (car faces) (car faces) frame disp-frame) (setq faces (cdr faces))))))) + (defun describe-face (face &optional frame) "Display the properties of face FACE on FRAME. Interactively, FACE defaults to the faces of the character after point