GNU bug report logs -
#67835
30.0.50; Error with undocumented disabled commands
Previous Next
Reported by: kakkokakko <at> gmail.com
Date: Fri, 15 Dec 2023 13:32:02 UTC
Severity: normal
Found in version 30.0.50
Fixed in version 29.2
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#67835: 30.0.50; Error with undocumented disabled commands
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 67835 <at> debbugs.gnu.org.
--
67835: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67835
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
Version: 29.2
Eli Zaretskii <eliz <at> gnu.org> writes:
>> Date: Fri, 15 Dec 2023 19:45:13 +0900
>> From: kakkokakko <at> gmail.com
>>
>> 1. emacs -Q --eval "(progn (defun foo () (interactive)) (put 'foo 'disabled t))"
>> 2. M-x foo RET
>>
>> Then, I encountered the error message "Wrong type argument:
>> char-or-string-p, nil". This behavior is different from that in
>> previous versions, like 27.1, where I received the following message.
>>
>> | You have invoked the disabled command foo.
>> | It is disabled because new users often find it confusing.
>> | Here’s the first part of its description:
>> |
>> | << not documented >>
>> | ...
>>
>> I also expect similar behavior in 30.0.50.
>>
>> In 30.0.50, it appears that disabled-command-function in
>> novice.el triggers this error by executing (insert nil) for
>> undocumented commands in the following code.
>>
>> | (insert (condition-case ()
>> | (documentation cmd)
>> | (error "<< not documented >>")))
>>
>> Although omitting a docstring is generally considered poor practice,
>> triggering an error for such commands might not be intentional
>> behavior. The corresponding code in 27.1 was as follows:
>>
>> | (... (or (condition-case ()
>> | (documentation cmd)
>> | (error nil))
>> | "<< not documented >>"))
Thanks for the bug report!
This should now be fixed on emacs-29.
[Message part 3 (message/rfc822, inline)]
1. emacs -Q --eval "(progn (defun foo () (interactive)) (put 'foo 'disabled t))"
2. M-x foo RET
Then, I encountered the error message "Wrong type argument:
char-or-string-p, nil". This behavior is different from that in
previous versions, like 27.1, where I received the following message.
| You have invoked the disabled command foo.
| It is disabled because new users often find it confusing.
| Here’s the first part of its description:
|
| << not documented >>
| ...
I also expect similar behavior in 30.0.50.
In 30.0.50, it appears that disabled-command-function in
novice.el triggers this error by executing (insert nil) for
undocumented commands in the following code.
| (insert (condition-case ()
| (documentation cmd)
| (error "<< not documented >>")))
Although omitting a docstring is generally considered poor practice,
triggering an error for such commands might not be intentional
behavior. The corresponding code in 27.1 was as follows:
| (... (or (condition-case ()
| (documentation cmd)
| (error nil))
| "<< not documented >>"))
--
KH
This bug report was last modified 1 year and 157 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.