* lisp/faces.el (faces--attribute-at-point): Fix an issue
Previous code would signal an error when the face at point was a manually built list of attributes such as '(:foregroud "white"). * test/automated/faces-tests.el (faces--test-color-at-point): Add a test
This commit is contained in:
parent
8121757b3a
commit
4f19767dfa
2 changed files with 10 additions and 1 deletions
|
@ -1971,7 +1971,11 @@ unnamed faces (e.g, `foreground-color')."
|
|||
(get-char-property (point) 'font-lock-face))
|
||||
(get-char-property (point) 'face)))
|
||||
(found nil))
|
||||
(dolist (face (if (listp faces) faces (list faces)))
|
||||
;; The attribute might be a face, a list of faces, or a list of
|
||||
;; attributes that make a face. Normalize it to a list of faces.
|
||||
(dolist (face (if (and (listp faces) (facep (car faces)))
|
||||
faces
|
||||
(list faces)))
|
||||
(cond (found)
|
||||
((and face (symbolp face))
|
||||
(let ((value (face-attribute-specified-or
|
||||
|
|
|
@ -37,6 +37,11 @@
|
|||
(goto-char (point-min))
|
||||
(should (equal (background-color-at-point) "black"))
|
||||
(should (equal (foreground-color-at-point) "black")))
|
||||
(with-temp-buffer
|
||||
(insert (propertize "STRING" 'face '(:foreground "black" :background "black")))
|
||||
(goto-char (point-min))
|
||||
(should (equal (background-color-at-point) "black"))
|
||||
(should (equal (foreground-color-at-point) "black")))
|
||||
(with-temp-buffer
|
||||
(emacs-lisp-mode)
|
||||
(setq-local font-lock-comment-face 'faces--test1)
|
||||
|
|
Loading…
Add table
Reference in a new issue