Subject: bug#71761: 29.3; Emacs-Lisp menu display is incorrect during Edebug

From: tpeplt <[email-masked]>
Date: Mon, 24 Jun 2024 16:32:46 -0400

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.

--