Subject: bug#52907: 28.0.90; M-X is broken if (current-local-map)=nil

From: Michael Heerdegen <[email-masked]>
Date: Sat, 15 Jan 2022 22:30:27 +0100

Lars Ingebrigtsen <[email-masked]> writes:

> Daniel Mendler <[email-masked]> writes:
>
> > 1. Start emacs -Q
> >
> > 2. Define in the scratch buffer
> >    (defun broken-command ()
> >      (interactive fundamental-mode))
> >
> > 3. Switch to fundamental mode
> >    (fundamental-mode)
> >
> > 4. M-X brok TAB ===> Error (see below)
> >
> > The problem is that the (current-local-map) is nil. This breaks
> > the predicate of execute-extended-command-for-buffer.
>
> I'm unable to reproduce this problem in either Emacs 28 or 29.  Are
> there additional steps needed to reproduce the bug (or has this been
> fixed since this was reported)?

I can reproduce with a master built from today.

I need to enable `debug-on-error', otherwise I only see a minibuffer
message indicating the error, the minibuffer survives.

Lars, be sure to follow the recipe with all details right - no M-x
instead of M-X, not "bro" instead of "brok" etc - then the recipe
"works" for me (and the analysis given by the OP makes sense to me).

HTH,

Michael.