Manage face-remapping-alist properly in face-remap-add-relative.

* face-remap.el (face-remap-add-relative): Handle the case where a
face-remapping-alist entry is a cons cell.

Fixes: debbugs:12762
This commit is contained in:
Chong Yidong 2012-10-29 17:55:57 +08:00
parent d55911cf1d
commit 894b9dd938
2 changed files with 9 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2012-10-29 Chong Yidong <cyd@gnu.org>
* face-remap.el (face-remap-add-relative): Handle the case where a
face-remapping-alist entry is a cons cell (Bug#12762).
2012-10-29 Glenn Morris <rgm@gnu.org>
* emacs-lisp/cl.el (defsetf): Doc fix.

View file

@ -132,7 +132,10 @@ other than the normal definition of FACE via `face-remap-set-base'."
(when (null entry)
(setq entry (list face face)) ; explicitly merge with global def
(push entry face-remapping-alist))
(setcdr entry (face-remap-order (cons specs (cdr entry))))
(let ((faces (cdr entry)))
(if (symbolp faces)
(setq faces (list faces)))
(setcdr entry (face-remap-order (cons specs faces))))
(cons face specs)))
(defun face-remap-remove-relative (cookie)