diff options
Diffstat (limited to 'lisp/progmodes/python.el')
| -rw-r--r-- | lisp/progmodes/python.el | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 9091289b62e..d0d4a7f766e 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el | |||
| @@ -4865,12 +4865,19 @@ point's current `syntax-ppss'." | |||
| 4865 | ;; Allow up to two consecutive docstrings only. | 4865 | ;; Allow up to two consecutive docstrings only. |
| 4866 | (>= | 4866 | (>= |
| 4867 | 2 | 4867 | 2 |
| 4868 | (progn | 4868 | (let (last-backward-sexp-point) |
| 4869 | (while (save-excursion | 4869 | (while (save-excursion |
| 4870 | (python-nav-backward-sexp) | 4870 | (python-nav-backward-sexp) |
| 4871 | (setq backward-sexp-point (point)) | 4871 | (setq backward-sexp-point (point)) |
| 4872 | (and (= indentation (current-indentation)) | 4872 | (and (= indentation (current-indentation)) |
| 4873 | (not (bobp)) ; Prevent infloop. | 4873 | ;; Make sure we're always moving point. |
| 4874 | ;; If we get stuck in the same position | ||
| 4875 | ;; on consecutive loop iterations, | ||
| 4876 | ;; bail out. | ||
| 4877 | (prog1 (not (eql last-backward-sexp-point | ||
| 4878 | backward-sexp-point)) | ||
| 4879 | (setq last-backward-sexp-point | ||
| 4880 | backward-sexp-point)) | ||
| 4874 | (looking-at-p | 4881 | (looking-at-p |
| 4875 | (concat "[uU]?[rR]?" | 4882 | (concat "[uU]?[rR]?" |
| 4876 | (python-rx string-delimiter))))) | 4883 | (python-rx string-delimiter))))) |