GNU bug report logs - #42058
Cannot M-x (some?) single-letter commands in ‘fido-mode’

Previous Next

Package: emacs;

Reported by: Dario Gjorgjevski <dario.gjorgjevski <at> gmail.com>

Date: Fri, 26 Jun 2020 10:55:02 UTC

Severity: normal

Done: João Távora <joaotavora <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: João Távora <joaotavora <at> gmail.com>
To: Dario Gjorgjevski <dario.gjorgjevski <at> gmail.com>
Cc: 42058 <at> debbugs.gnu.org
Subject: bug#42058: Cannot M-x (some?) single-letter commands in ‘fido-mode’
Date: Mon, 29 Jun 2020 15:13:11 +0100
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 325 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.