[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 05345ba 1/2: Fix off by one error in python-mode as
From: |
Noam Postavsky |
Subject: |
[Emacs-diffs] master 05345ba 1/2: Fix off by one error in python-mode assertion (Bug#30964) |
Date: |
Sat, 16 Jun 2018 18:35:04 -0400 (EDT) |
branch: master
commit 05345babc988060cca540770599282102c34f2a7
Author: Noam Postavsky <address@hidden>
Commit: Noam Postavsky <address@hidden>
Fix off by one error in python-mode assertion (Bug#30964)
* lisp/progmodes/python.el (python-nav-end-of-statement): Don't assert
that string-start is strictly greater than last-string-end, because
the string end is a position outside of the string and may therefore
be the same as the following string's start.
* test/lisp/progmodes/python-tests.el (python-nav-end-of-statement-2):
New test.
---
lisp/progmodes/python.el | 2 +-
test/lisp/progmodes/python-tests.el | 6 ++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 6f4a343..e39ff08 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -1518,7 +1518,7 @@ of the statement."
;; are somehow out of whack. This has been
;; observed when using `syntax-ppss' during
;; narrowing.
- (cl-assert (> string-start last-string-end)
+ (cl-assert (>= string-start last-string-end)
:show-args
"\
Overlapping strings detected (start=%d, last-end=%d)")
diff --git a/test/lisp/progmodes/python-tests.el
b/test/lisp/progmodes/python-tests.el
index 1c4d22d..0b9f848 100644
--- a/test/lisp/progmodes/python-tests.el
+++ b/test/lisp/progmodes/python-tests.el
@@ -2004,6 +2004,12 @@ string
(python-util-forward-comment -1)
(point))))))
+(ert-deftest python-nav-end-of-statement-2 ()
+ "Test the string overlap assertion (Bug#30964)."
+ (python-tests-with-temp-buffer
+ "'\n''\n"
+ (python-nav-end-of-statement)))
+
(ert-deftest python-nav-forward-statement-1 ()
(python-tests-with-temp-buffer
"