From: Eli Zaretskii Date: Wed, 1 Jan 2020 17:49:57 +0000 (+0200) Subject: Fix reverting customizations X-Git-Tag: emacs-27.0.90~225 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=071483b6f5;p=emacs.git 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) --- 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)