bpo-42426: IDLE: Fix reporting offset of the RE error in searchengine (GH-23447)
This commit is contained in:
parent
442746af64
commit
453bc1da20
|
@ -3,6 +3,8 @@ Released on 2021-10-04?
|
|||
======================================
|
||||
|
||||
|
||||
bpo-42426: Fix reporting offset of the RE error in searchengine.
|
||||
|
||||
bpo-42416: Get docstrings for IDLE calltips more often
|
||||
by using inspect.getdoc.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Fix reporting offset of the RE error in searchengine.
|
Loading…
Reference in New Issue