Subject: bug#48695: [PATCH] Fix region deletion behavior in python.el

From: Eli Zaretskii <[email-masked]>
Date: Mon, 30 Jun 2025 15:27:24 +0300

> Cc: [email-masked],
>  Jakub Ječmínek <[email-masked]>,
>  [email-masked]
> Date: Mon, 30 Jun 2025 00:19:53 +0200
> From:  Jakub Ječmínek via "Bug reports for GNU Emacs,
>  the Swiss army knife of text editors" <[email-masked]>
> 
> * lisp/progmodes/python.el (python-indent-dedent-line-backspace):
> Check for an active region when deciding whether to perform a
> backward delete.  (Bug#48695)
> 
> * test/lisp/progmodes/python-tests.el: Add regression test
> `python-indent-dedent-line-backspace-4'.
> ---
>  lisp/progmodes/python.el            |  4 +++-
>  test/lisp/progmodes/python-tests.el | 15 +++++++++++++++
>  2 files changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
> index f4f0518dbfd..17fabc322fa 100644
> --- a/lisp/progmodes/python.el
> +++ b/lisp/progmodes/python.el
> @@ -1970,7 +1970,9 @@ python-indent-dedent-line-backspace
>  Argument ARG is passed to `backward-delete-char-untabify' when
>  point is not in between the indentation."
>    (interactive "*p")
> -  (unless (python-indent-dedent-line)
> +  (unless (and
> +           (not (region-active-p))
> +           (python-indent-dedent-line))
>      (backward-delete-char-untabify arg)))
>  
>  (put 'python-indent-dedent-line-backspace 'delete-selection 'supersede)

This is an incompatible change in behavior.  I wonder whether we can
do this unconditionally.  Maybe some user option is in order to
control this behavior?

kobarity, any comments or suggestions?