]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix reverting customizations
authorEli Zaretskii <eliz@gnu.org>
Wed, 1 Jan 2020 17:49:57 +0000 (19:49 +0200)
committerEli Zaretskii <eliz@gnu.org>
Wed, 1 Jan 2020 17:49:57 +0000 (19:49 +0200)
* 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)

lisp/custom.el

index ba7f9997821975cddbd5401ea216619298b44181..037f6c5b1d5478bb01dbdf3d1a6747065a5d5c8f 100644 (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)