diff options
author | Eli Zaretskii <eliz@gnu.org> | 2020-01-01 19:49:57 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2020-01-01 19:49:57 +0200 |
commit | 071483b6f516b737182440264ec11c94ada53dc3 (patch) | |
tree | f363a8028ec4ffff55ba05f47b5ec6621352b4cc /lisp/custom.el | |
parent | 43203d5068eee68138007cac9d12a04d40d4ffb6 (diff) | |
download | emacs-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.el | 5 |
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) |