Ensure delayed-init custom variables get marked special
* lisp/custom.el (custom-reevaluate-setting): If the variable has never been set, defvar it. (Bug#25770)
This commit is contained in:
parent
08c73cdc6e
commit
96cea19842
1 changed files with 11 additions and 3 deletions
|
@ -764,9 +764,17 @@ Return non-nil if the `customized-value' property actually changed."
|
|||
Use the :set function to do so. This is useful for customizable options
|
||||
that are defined before their standard value can really be computed.
|
||||
E.g. dumped variables whose default depends on run-time information."
|
||||
(funcall (or (get symbol 'custom-set) 'set-default)
|
||||
symbol
|
||||
(eval (car (or (get symbol 'saved-value) (get symbol 'standard-value))))))
|
||||
(let ((val (car (or (get symbol 'saved-value)
|
||||
(get symbol 'standard-value)))))
|
||||
(if (default-boundp symbol)
|
||||
(funcall (or (get symbol 'custom-set) 'set-default) symbol (eval val))
|
||||
;; If it has never been set at all, defvar it so as to mark it
|
||||
;; special, etc (bug#25770). This ignores any :set function,
|
||||
;; but that is not supposed to be used for initialization anyway.
|
||||
;; Or we could move this branch to the start, then unconditionally
|
||||
;; call the custom-set branch.
|
||||
(eval `(defvar ,symbol ,val)))))
|
||||
|
||||
|
||||
|
||||
;;; Custom Themes
|
||||
|
|
Loading…
Add table
Reference in a new issue