Fix `pr-interface'
`pr-interface' specifies `inline' for its menu items, which is not necessary, but it causes `widget-choice-value-create' to bug out. (Bug#60501) * lisp/wid-edit.el (widget-choice-value-create): Allow the value to be a non-list. * test/lisp/wid-edit-tests.el (widget-test-handle-spurious-inline): Add test to ensure that unnecessary :inline is allowed.
This commit is contained in:
parent
699711786a
commit
7420b6dcc3
2 changed files with 19 additions and 1 deletions
|
@ -2220,7 +2220,9 @@ But if NO-TRUNCATE is non-nil, include them."
|
|||
(if (widget-get current :inline)
|
||||
(setq val value
|
||||
fun :match-inline)
|
||||
(setq val (car value)
|
||||
(setq val (if (consp value)
|
||||
(car value)
|
||||
value)
|
||||
fun :match))
|
||||
(setq val value
|
||||
fun :match))
|
||||
|
|
|
@ -267,6 +267,22 @@ return nil, even with a non-nil bubblep argument."
|
|||
(should child)
|
||||
(should (equal (widget-value widget) '(1 "One"))))))
|
||||
|
||||
;; Bug#60501
|
||||
(ert-deftest widget-test-handle-spurious-inline ()
|
||||
"Test the we can create a menu widget with an unnecessary :inline"
|
||||
(with-temp-buffer
|
||||
(widget-insert "Testing.\n\n")
|
||||
(let* ((widget (widget-create 'menu-choice
|
||||
:inline t
|
||||
:value "*scratch*"
|
||||
'(choice-item "*scratch*")))
|
||||
(child (car (widget-get widget :children))))
|
||||
(widget-insert "\n")
|
||||
(use-local-map widget-keymap)
|
||||
(widget-setup)
|
||||
(should child)
|
||||
(should (string-equal (widget-value widget) "*scratch*")))))
|
||||
|
||||
(ert-deftest widget-test-option-can-handle-choice ()
|
||||
"Test that we can create a option widget with a choice correctly."
|
||||
(with-temp-buffer
|
||||
|
|
Loading…
Add table
Reference in a new issue