From: Volodymyr Poltavets Date: Tue, 15 Jun 2021 11:03:24 +0000 (+0200) Subject: * Handle invalid regex (like ?) semi-gracefully X-Git-Tag: v0.1.0~137^2~1 X-Git-Url: https://git.packet-gain.de/?a=commitdiff_plain;h=8f946a77471ba853b7a2ee490dc28c8e3d07a270;p=jiten-pai.git * Handle invalid regex (like ?) semi-gracefully --- 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