Fix reverting customizations

* lisp/custom.el (custom-push-theme): Don't use setcar to modify
the recorded value of PROP; instead, cons a new property list by
deleting the old value and adding the new one.  (Bug#38812)
This commit is contained in:
Eli Zaretskii 2020-01-01 19:49:57 +02:00
parent 43203d5068
commit 071483b6f5

View file

@ -886,7 +886,10 @@ See `custom-known-themes' for a list of known themes."
(put theme 'theme-settings
(cons (list prop symbol theme value)
(delq res theme-settings)))
(setcar (cdr setting) value)))
;; It's tempting to use setcar here, but that could
;; inadvertently modify other properties in SYMBOL's proplist,
;; if those just happen to share elements with the value of PROP.
(put symbol prop (cons (list theme value) (delq setting old)))))
;; Add a new setting:
(t
(when (custom--should-apply-setting theme)