Subject: bug#62031: 29.0.60; python-mode indentation after re.match

From: Dmitry Gutov <[email-masked]>
Date: Wed, 8 Mar 2023 20:15:03 +0200

On 08/03/2023 19:57, Dmitry Gutov wrote:
> After some edebug-ing, the patch below seems to fix this case

Small correction for cases outside of any blocks:

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 1f970633bfc..81475f31f60 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -5792,7 +5792,9 @@ python-info-dedenter-opening-block-positions
            (catch 'exit
              (while (python-nav--syntactically
                      (lambda ()
-                      (re-search-backward (python-rx block-start) nil t))
+                      (cl-loop for pt = (re-search-backward (python-rx 
block-start) nil t)
+                               until (memq (char-before) '(nil ?\s ?\t 
?\n))
+                               finally return pt))
                      #'<)
                (let ((indentation (current-indentation)))
                  (when (and (not (memq indentation collected-indentations))