diff options
author | Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> | 2020-11-22 05:30:46 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-22 05:30:46 (GMT) |
commit | dd20643b144d1c81989d235c3ec51f18fda618c2 (patch) | |
tree | ed091e9733947681fcc7de7bd43af76453acbc83 | |
parent | 748d38bf529d71d87cc7ef6d63e9df7d7d771ac9 (diff) | |
download | cpython-dd20643b144d1c81989d235c3ec51f18fda618c2.zip cpython-dd20643b144d1c81989d235c3ec51f18fda618c2.tar.gz cpython-dd20643b144d1c81989d235c3ec51f18fda618c2.tar.bz2 |
bpo-42426: IDLE: Fix reporting offset of the RE error in searchengine (GH-23447)
(cherry picked from commit 453bc1da2023d6cbe362637a2e0b06d0521f013c)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
-rw-r--r-- | Lib/idlelib/NEWS.txt | 2 | ||||
-rw-r--r-- | Lib/idlelib/idle_test/test_searchengine.py | 6 | ||||
-rw-r--r-- | Lib/idlelib/searchengine.py | 11 | ||||
-rw-r--r-- | Misc/NEWS.d/next/IDLE/2020-11-21-17-21-21.bpo-42426.kNnPoC.rst | 1 |
4 files changed, 11 insertions, 9 deletions
diff --git a/Lib/idlelib/NEWS.txt b/Lib/idlelib/NEWS.txt index 6eacde9..e257ee9 100644 --- a/Lib/idlelib/NEWS.txt +++ b/Lib/idlelib/NEWS.txt @@ -3,6 +3,8 @@ Released on 2020-12-07? ====================================== +bpo-42426: Fix reporting offset of the RE error in searchengine. + bpo-42416: Get docstrings for IDLE calltips more often by using inspect.getdoc. diff --git a/Lib/idlelib/idle_test/test_searchengine.py b/Lib/idlelib/idle_test/test_searchengine.py index 3d26d62..f8401ce 100644 --- a/Lib/idlelib/idle_test/test_searchengine.py +++ b/Lib/idlelib/idle_test/test_searchengine.py @@ -175,11 +175,13 @@ class SearchEngineTest(unittest.TestCase): engine.setpat('') Equal(engine.getprog(), None) + Equal(Mbox.showerror.message, + 'Error: Empty regular expression') engine.setpat('+') engine.revar.set(1) Equal(engine.getprog(), None) - self.assertEqual(Mbox.showerror.message, - 'Error: nothing to repeat at position 0\nPattern: +') + Equal(Mbox.showerror.message, + 'Error: nothing to repeat\nPattern: +\nOffset: 0') def test_report_error(self): showerror = Mbox.showerror diff --git a/Lib/idlelib/searchengine.py b/Lib/idlelib/searchengine.py index 911e7d4..a50038e 100644 --- a/Lib/idlelib/searchengine.py +++ b/Lib/idlelib/searchengine.py @@ -84,20 +84,17 @@ class SearchEngine: flags = flags | re.IGNORECASE try: prog = re.compile(pat, flags) - except re.error as what: - args = what.args - msg = args[0] - col = args[1] if len(args) >= 2 else -1 - self.report_error(pat, msg, col) + except re.error as e: + self.report_error(pat, e.msg, e.pos) return None return prog - def report_error(self, pat, msg, col=-1): + def report_error(self, pat, msg, col=None): # Derived class could override this with something fancier msg = "Error: " + str(msg) if pat: msg = msg + "\nPattern: " + str(pat) - if col >= 0: + if col is not None: msg = msg + "\nOffset: " + str(col) tkMessageBox.showerror("Regular expression error", msg, master=self.root) diff --git a/Misc/NEWS.d/next/IDLE/2020-11-21-17-21-21.bpo-42426.kNnPoC.rst b/Misc/NEWS.d/next/IDLE/2020-11-21-17-21-21.bpo-42426.kNnPoC.rst new file mode 100644 index 0000000..0ab7972 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2020-11-21-17-21-21.bpo-42426.kNnPoC.rst @@ -0,0 +1 @@ +Fix reporting offset of the RE error in searchengine. |