From 8f946a77471ba853b7a2ee490dc28c8e3d07a270 Mon Sep 17 00:00:00 2001 From: Volodymyr Poltavets Date: Tue, 15 Jun 2021 13:03:24 +0200 Subject: [PATCH] * Handle invalid regex (like ?) semi-gracefully --- jiten-pai.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/jiten-pai.py b/jiten-pai.py index d919707..fa3a7da 100755 --- a/jiten-pai.py +++ b/jiten-pai.py @@ -432,6 +432,12 @@ class jpMainWindow(QMainWindow): # perform lookup QApplication.processEvents() result = dict_lookup(cfg['dict'], term, mode, max_res) + # + self.result_group.setTitle('Search results: %d' % len(result)) + self.result_pane.setEnabled(True); + # bail early on empty result + if 0 == len(result): + return # format result term = self.search_box.lineEdit().text() re_term = re.compile(kata2hira(term), re.IGNORECASE) @@ -456,8 +462,6 @@ class jpMainWindow(QMainWindow): html.append(' %s
\n' % res[2]) html.append('') self.result_pane.setHtml(''.join(html)) - self.result_group.setTitle('Search results: %d' % len(result)) - self.result_pane.setEnabled(True); def kbd_copy(self): self.clipboard.setText(self.result_pane.textCursor().selectedText()) @@ -478,7 +482,10 @@ def dict_lookup(dict_fname, pattern, mode, max_res=0): result = [] cnt = 0; with open(dict_fname) as dict_file: - re_pattern = re.compile(pattern, re.IGNORECASE) + try: + re_pattern = re.compile(pattern, re.IGNORECASE) + except: + return result for line in dict_file: if max_res and cnt >= max_res: break -- 2.30.2