bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#65870: 30.0.50; Error in python-mode when try to delete a character


From: Daniel Lopez
Subject: bug#65870: 30.0.50; Error in python-mode when try to delete a character in badly-indented code
Date: Sun, 17 Sep 2023 05:06:10 +0100
User-agent: Mozilla Thunderbird

On 16/09/2023 16:06, kobarity wrote:

Eli Zaretskii wrote:
Date: Mon, 11 Sep 2023 17:36:59 +0100
From: Daniel Lopez <daniel.lopez999@gmail.com>

To reproduce from emacs -Q:
   C-x b hello.py RET
   M-x python-mode
   On the first line, type the word "return", then press the Return key.
   On the second line, type one or more spaces.
   Press Backspace. This triggers the error message:
       python-indent-line: Wrong type argument: wholenump, -4
   and, the last-typed space is not deleted.

Backtrace of the error:
   Debugger entered--Lisp error: (wrong-type-argument wholenump -4)
     indent-line-to(-4)
     python-indent-line(t)
     python-indent-dedent-line()
     python-indent-dedent-line-backspace(1)
     funcall-interactively(python-indent-dedent-line-backspace 1)
     command-execute(python-indent-dedent-line-backspace)

This can also happen with Python keywords/statements that tend to end a
scope, eg. "break" or "raise", as well as "return".

I guess the smart dedenting sees the "return" (or similar statement) at
top-level scope and then tries to move the cursor to a parent scope /
negative column that doesn't exist. Perhaps one of those indent
functions could clamp itself somehow to not do that but I'm not sure
where the best place for that would be.

Thanks.

kobarity, any suggestions or comments?

Thank you for the report.  The attached is the proposed fix.

On applying the fix to my own installation, I can confirm that it works for me. Thanks. :)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]