[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#71761: 29.3; Emacs-Lisp menu display is incorrect during Edebug
From: |
Eli Zaretskii |
Subject: |
bug#71761: 29.3; Emacs-Lisp menu display is incorrect during Edebug |
Date: |
Sat, 29 Jun 2024 14:05:40 +0300 |
> Cc: 71761@debbugs.gnu.org
> Date: Fri, 28 Jun 2024 19:10:05 +0100
> From: Jeremy Bryant via "Bug reports for GNU Emacs,
> the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
>
> tpeplt <tpeplt@gmail.com> writes:
>
> > Emacs Maintainers,
> >
> > When a function has been instrumented for debugging with
> > Edebug and the debugger has entered the function for
> > stepping, the menu item ‘Emacs-Lisp’ does not list the
> > correct entries (which should be the same entries as they
> > were before entering the debugger) in its drop-down menu.
> > Instead, the drop-down menu lists two entries ‘Emacs-Lisp’
> > and ‘Emacs-Lisp’. These two entries, in turn, are sub-menus
> > whose contents are the correct menu items for ‘Emacs-Lisp’,
> > namely, ‘Indent Line’, ‘Indent Region’, and so on.
> >
> > After exiting the debugger, the menu items for the
> > ‘Emacs-Lisp’ menu item are displayed correctly.
> >
> > Recipe for reproducing this menu-display error:
> >
> > 1. Start Emacs from a shell prompt with: $ emacs -Q
> >
> > 2. Create a new Emacs Lisp file with C-x C-f, say,
> > new-file.el
> >
> > 3. Create a simple Emacs Lisp function:
> >
> > (defun new-fun (name)
> > (if name 'some-name nil))
> >
> > 4. Instrument the function with C-u M-C-x.
> >
> > 5. Check the menu listing for ‘Emacs-Lisp’ to confirm
> > that it is correct.
> >
> > 6. Invoke the instrumented function to enter Edebug:
> >
> > (new-fun t)
> >
> > 7. Check the menu listing for ‘Emacs-Lisp’ to see that it
> > now lists (only) two identical ‘Emacs-Lisp’ entries,
> > each of which is a sub-menu. The sub-menus will list
> > the correct entries for ‘Emacs-Lisp’.
> >
> > 8. In the debugger, type ‘c’ to continue to complete the
> > debugging session. Once it has exited, check the
> > ‘Emacs-Lisp’ menu item to confirm that it now has the
> > correct entries. Each time that Edebug is entered,
> > the ‘Emacs-Lisp’ menu’s entries are two incorrect
> > sub-menus.
> >
> > Please let me know if anything above is unclear or if you are unable
> > to reproduce this problem.
>
> The following may help to narrow down the problem:
>
> In Emacs 29.4:
> I am able to reproduce the bug in Emacs GUI
> But in Emacs TTY (emacs -nw), the problem seems absent, the menu bar
> appears correct.
That could be a bug in TTY menus, or maybe a side effect of how the
menu bar is displayed there.
AFAICT, the duplicate menu is the consequence of the fact that
edebug-mode has its keymap inherit from emacs-lisp-mode:
(defvar-keymap edebug-mode-map
:parent emacs-lisp-mode-map
So when Edebug is activated, it wants to display yet another "Emacs
Lisp" menu on the menu bar.
Stefan, do you see a way to avoid that?
Or maybe we should not consider this a bug at all? After all, what's
the damage?