Function: face-remap-remove-relative

face-remap-remove-relative is a byte-compiled function defined in face-remap.el.gz.

Signature

(face-remap-remove-relative COOKIE)

Documentation

Remove a face remapping previously added by face-remap-add-relative.

COOKIE should be the return value from that function.

Probably introduced at or before Emacs version 23.1.

Source Code

;; Defined in /usr/src/emacs/lisp/face-remap.el.gz
(defun face-remap-remove-relative (cookie)
  "Remove a face remapping previously added by `face-remap-add-relative'.
COOKIE should be the return value from that function."
  (let ((remapping (assq (car cookie) face-remapping-alist)))
    (when remapping
      (let ((updated-entries (remq (cdr cookie) (cdr remapping))))
	(unless (eq updated-entries (cdr remapping))
	  (setcdr remapping updated-entries)
	  (when (or (null updated-entries)
		    (and (eq (car-safe updated-entries) (car cookie))
			 (null (cdr updated-entries))))
	    (setq face-remapping-alist
		  (remq remapping face-remapping-alist))
	    ;; Force redisplay of this buffer.
	    (force-mode-line-update))
	  (cdr cookie))))))