]> git.eshelyaron.com Git - emacs.git/commitdiff
Reset to the standard value when reverting session's customizations
authorMauro Aranda <maurooaranda@gmail.com>
Mon, 30 Dec 2019 21:10:28 +0000 (18:10 -0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 11 Jan 2020 08:36:59 +0000 (10:36 +0200)
* lisp/cus-edit.el (custom-variable-reset-saved): When there is no
previous saved value, reset to the standard value.  (Bug#15214)

lisp/cus-edit.el

index 0ca3f1ede85291cd7f51b04a0dd25614762df7f8..d3d17fda7adabfad21045ae72a678703215528b1 100644 (file)
@@ -3035,17 +3035,18 @@ Update the widget to show that value.  The value that was current
 before this operation becomes the backup value."
   (let* ((symbol (widget-value widget))
         (saved-value (get symbol 'saved-value))
-        (comment (get symbol 'saved-variable-comment)))
+        (comment (get symbol 'saved-variable-comment))
+         value)
     (custom-variable-backup-value widget)
     (if (not (or saved-value comment))
-       ;; If there is no saved value, remove the setting.
-       (custom-push-theme 'theme-value symbol 'user 'reset)
-      ;; Otherwise, apply the saved value.
-      (put symbol 'variable-comment comment)
-      (custom-push-theme 'theme-value symbol 'user 'set (car-safe saved-value))
-      (ignore-errors
-       (funcall (or (get symbol 'custom-set) 'set-default)
-                symbol (eval (car saved-value)))))
+        ;; If there is no saved value, remove the setting.
+        (custom-push-theme 'theme-value symbol 'user 'reset)
+      (setq value (car-safe saved-value))
+      (custom-push-theme 'theme-value symbol 'user 'set value)
+      (put symbol 'variable-comment comment))
+    (ignore-errors
+      (funcall (or (get symbol 'custom-set) #'set-default) symbol
+               (eval (or value (car (get symbol 'standard-value))))))
     (put symbol 'customized-value nil)
     (put symbol 'customized-variable-comment nil)
     (widget-put widget :custom-state 'unknown)