1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-03 10:31:37 -08:00

Fix comparison of current values for the key-sequence :type

* lisp/cus-edit.el (custom-variable-modified-p): Round-trip
the option value before comparing it against the widget's value.
This mostly fixes comparison against the obsolete key-sequence
widget, but could fix other corner cases, when the widget
accepts different types as values.  (Bug#76156)

* test/lisp/cus-edit-tests.el (cus-edit-test-bug76156)
(cus-edit-test-bug76156-2): New test options.
(cus-edit-test-unedited-option): New test.
This commit is contained in:
Mauro Aranda 2025-02-15 09:26:46 -03:00 committed by Stefan Kangas
parent 2044f6d959
commit f549cedaa2
2 changed files with 30 additions and 5 deletions

View file

@ -134,5 +134,23 @@
;; No empty key/value pairs should show up.
(should-not (search-forward "key" nil t)))
(defcustom cus-edit-test-bug76156 "\C-c "
"Key-sequence option that might show up as EDITED even though it's not."
:type 'key-sequence)
(defcustom cus-edit-test-bug76156-2 [(control ?z)]
"Key-sequence option that might show up as EDITED even though it's not."
:type 'key-sequence)
(ert-deftest cus-edit-test-unedited-option ()
"Test that customizing unedited options doesn't show up as EDITED."
(dolist (option '(cus-edit-test-bug76156
cus-edit-test-bug76156-2
cus-edit-test-foo1))
(customize-option option)
(let ((widget (car custom-options)))
(should (eq (widget-get widget :custom-state) 'standard)))
(kill-buffer)))
(provide 'cus-edit-tests)
;;; cus-edit-tests.el ends here