Subject: Re: bug#73773: 31.0.50; void-variable subword-mode in python-mode

From: Stephen Berman <[email-masked]>
Date: Sun, 13 Oct 2024 11:32:40 +0200

On Sun, 13 Oct 2024 09:17:36 +0000 Stefan Kangas <[email-masked]> wrote:

> Stephen Berman <[email-masked]> writes:
>
>> 0. emacs -Q
>> 1. M-x menu-bar-mode (disable menu bar)
>> 3. Visit a file in python-mode, e.g. modules/modhelp.py in the Emacs
>>    sources.
>> 4. Pressing <f10> or C-mouse-3 pops up the global menu as usual.
>> 5. M-x toggle-debug-on-error
>> 6. Now pressing <f10> or C-mouse-3 does not pop up the global menu but
>>    instead a *Backtrace* buffer pops open displaying "Lisp error:
>>    (void-variable subword-mode)".
>>
>> This is due to the following commit:
>>
>> commit 29a760711731ce49965079e72d76b26ef3b7bcb4
>> Author:     Stefan Kangas <[email-masked]>
>> AuthorDate: Sat Sep 21 14:07:29 2024 +0200
>> Commit:     Stefan Kangas <[email-masked]>
>> CommitDate: Sat Sep 21 14:08:09 2024 +0200
>>
>>   Add subword-mode toggle to python-mode menu
>>
>>   * lisp/progmodes/python.el (python-mode-map): Add subword-mode
>>   toggle to menu.
>>
>> The attached patch fixes this problem.
>>
>>
>> In GNU Emacs 31.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
>>  3.24.43, cairo version 1.18.2) of 2024-10-12 built on strobelfssd
>> Repository revision: c3600916b6942b2a9797ec2248d29cb337c7c6fa
>> Repository branch: master
>> Windowing system distributor 'The X.Org Foundation', version 11.0.12101013
>> System Description: Linux From Scratch r12.2-17-systemd
>>
>> Configured using:
>>  'configure -C 'CFLAGS=-Og -g3' PKG_CONFIG_PATH=/opt/qt6/lib/pkgconfig'
>>
>> Configured features:
>> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
>> LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG
>> RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER
>> WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB
>>
>> diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
>> index 812e28268c2..4e3b18a327b 100644
>> --- a/lisp/progmodes/python.el
>> +++ b/lisp/progmodes/python.el
>> @@ -361,6 +361,11 @@ python-mode-map
>>    ;; Utilities
>>    "<remap> <complete-symbol>" #'completion-at-point)
>>
>> +;; Define this so invoking menu-bar-open in a python-mode buffer does
>> +;; not cause a void-variable error when subword-mode is not loaded,
>> +;; menu-bar-mode is disabled and debug-on-error is enabled (bug#xxx).
>> +(defvar subword-mode nil)
>> +
>>  (easy-menu-define python-menu python-mode-map
>>    "Menu used for ´python-mode'."
>>    '("Python"
>
> Thanks, LGTM. I would move the comment to the commit message though.

Sure, done.

> Please install when you can.

Thanks, done in commit 9a110c390dc and closing the bug.

Steve Berman