1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-07 15:21:46 +00:00

Fix modification check when custom-form is `lisp'

* lisp/cus-edit.el (custom-variable-modified-p): Quote the value when
custom form is 'lisp (or 'mismatch) prior to comparing in order to
accommodate `custom-variable-value-create' (bug#44852).
This commit is contained in:
Dario Gjorgjevski 2020-11-26 11:59:23 +01:00 committed by Lars Ingebrigtsen
parent 771bd26b77
commit e3d8f4b98f

View File

@ -2900,14 +2900,20 @@ Modified means that the widget that holds the value has been edited by the user
in a customize buffer.
To check for other states, call `custom-variable-state'."
(catch 'get-error
(let* ((symbol (widget-get widget :value))
(let* ((form (widget-get widget :custom-form))
(symbol (widget-get widget :value))
(get (or (get symbol 'custom-get) 'default-value))
(value (if (default-boundp symbol)
(condition-case nil
(funcall get symbol)
(error (throw 'get-error t)))
(symbol-value symbol))))
(not (equal value (widget-value (car (widget-get widget :children))))))))
(symbol-value symbol)))
(orig-value (widget-value (car (widget-get widget :children)))))
(not (equal (if (memq form '(lisp mismatch))
;; Mimic `custom-variable-value-create'.
(custom-quote value)
value)
orig-value)))))
(defun custom-variable-state-set (widget &optional state)
"Set the state of WIDGET to STATE.