summaryrefslogtreecommitdiff
path: root/lisp/custom.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2020-01-01 19:49:57 +0200
committerEli Zaretskii <eliz@gnu.org>2020-01-01 19:49:57 +0200
commit071483b6f516b737182440264ec11c94ada53dc3 (patch)
treef363a8028ec4ffff55ba05f47b5ec6621352b4cc /lisp/custom.el
parent43203d5068eee68138007cac9d12a04d40d4ffb6 (diff)
downloademacs-071483b6f516b737182440264ec11c94ada53dc3.tar.gz
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)
Diffstat (limited to 'lisp/custom.el')
-rw-r--r--lisp/custom.el5
1 files changed, 4 insertions, 1 deletions
diff --git a/lisp/custom.el b/lisp/custom.el
index ba7f9997821..037f6c5b1d5 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -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)