GNU bug report logs -
#42058
Cannot M-x (some?) single-letter commands in ‘fido-mode’
Previous Next
Full log
Message #8 received at 42058 <at> debbugs.gnu.org (full text, mbox):
Hello Dario,
Dario Gjorgjevski <dario.gjorgjevski <at> gmail.com> writes:
> Okay, this one is super weird.
>
> To reproduce, launch ‘emacs -Q’ and then
>
> M-: (defun T () (interactive) (message "T")) RET
> M-x fido-mode RET
> M-x T RET
>
> This results in “Wrong type argument: number-or-marker-p, nil”. The
> issue seems to stem from the fact that
>
> M-: (read-extended-command) RET
> T RET
>
> returns ‘icomplete-fido-delete-char’ as opposed to ‘T’, which is
> returned when ‘fido-mode’ is disabled.
Yes, that is exactly it.
First, let's establish that the error happens because you're invoking an
interactive command that doesn't make sense in that context. The
question becomes why pressing, in succession
M-x T
does _not_ place the command named "T" in the top of the list so that
typing RET immediately would invoke it. I don't have a good answer for
this yet. I do know that two letters don't trigger this problem:
(defun tt () (interactive) (message "yay TT"))
Will be the first completion to M-x tt ...
The completion to icomplete-fido-delete-char is just accidental: it
could have completed to anything else containing a "t" (since by
default, fido-mode is case-insensitive).
By the way, you can _force_ M-x to complete to the command named T by
typing M-j _instead_ of RET.
João
This bug report was last modified 4 years and 324 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.