Skip to content

Commit 453bc1d

Browse files
bpo-42426: IDLE: Fix reporting offset of the RE error in searchengine (pythonGH-23447)
1 parent 442746a commit 453bc1d

File tree

4 files changed

+11
-9
lines changed

4 files changed

+11
-9
lines changed

Lib/idlelib/NEWS.txt

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ Released on 2021-10-04?
33
======================================
44

55

6+
bpo-42426: Fix reporting offset of the RE error in searchengine.
7+
68
bpo-42416: Get docstrings for IDLE calltips more often
79
by using inspect.getdoc.
810

Lib/idlelib/idle_test/test_searchengine.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,13 @@ def test_getprog(self):
175175

176176
engine.setpat('')
177177
Equal(engine.getprog(), None)
178+
Equal(Mbox.showerror.message,
179+
'Error: Empty regular expression')
178180
engine.setpat('+')
179181
engine.revar.set(1)
180182
Equal(engine.getprog(), None)
181-
self.assertEqual(Mbox.showerror.message,
182-
'Error: nothing to repeat at position 0\nPattern: +')
183+
Equal(Mbox.showerror.message,
184+
'Error: nothing to repeat\nPattern: +\nOffset: 0')
183185

184186
def test_report_error(self):
185187
showerror = Mbox.showerror

Lib/idlelib/searchengine.py

+4-7
Original file line numberDiff line numberDiff line change
@@ -84,20 +84,17 @@ def getprog(self):
8484
flags = flags | re.IGNORECASE
8585
try:
8686
prog = re.compile(pat, flags)
87-
except re.error as what:
88-
args = what.args
89-
msg = args[0]
90-
col = args[1] if len(args) >= 2 else -1
91-
self.report_error(pat, msg, col)
87+
except re.error as e:
88+
self.report_error(pat, e.msg, e.pos)
9289
return None
9390
return prog
9491

95-
def report_error(self, pat, msg, col=-1):
92+
def report_error(self, pat, msg, col=None):
9693
# Derived class could override this with something fancier
9794
msg = "Error: " + str(msg)
9895
if pat:
9996
msg = msg + "\nPattern: " + str(pat)
100-
if col >= 0:
97+
if col is not None:
10198
msg = msg + "\nOffset: " + str(col)
10299
tkMessageBox.showerror("Regular expression error",
103100
msg, master=self.root)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix reporting offset of the RE error in searchengine.

0 commit comments

Comments
 (0)