diff --git a/toxygen/list_items.py b/toxygen/list_items.py index 5a62cb6..ab8d0b4 100644 --- a/toxygen/list_items.py +++ b/toxygen/list_items.py @@ -190,8 +190,9 @@ class MessageItem(QtGui.QWidget): self.message.setFixedHeight(self.height()) self.name.setPixmap(pixmap.scaled(30, 30, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)) - def select_text(self, text=''): + def select_text(self, text): tmp = self.message.toHtml() + text = h.escape(text) strings = re.findall(text, tmp, flags=re.IGNORECASE) for s in strings: tmp = self.replace_all(tmp, s) @@ -209,7 +210,7 @@ class MessageItem(QtGui.QWidget): if rgt < lgt: i += rgt + 1 continue - sub = '{}'.format(substring) + sub = '{}'.format(substring) text = text[:i] + sub + text[i + l:] i += len(sub) return text diff --git a/toxygen/mainscreen_widgets.py b/toxygen/mainscreen_widgets.py index 1910cb7..e5b406e 100644 --- a/toxygen/mainscreen_widgets.py +++ b/toxygen/mainscreen_widgets.py @@ -473,7 +473,7 @@ class SearchScreen(QtGui.QWidget): Profile.get_instance().update() text = self.search_text.text() friend = Profile.get_instance().get_curr_friend() - if text and friend: + if text and friend and util.is_re_valid(text): index = friend.search_string(text) self.load_messages(index) diff --git a/toxygen/util.py b/toxygen/util.py index b997873..beeb3a9 100644 --- a/toxygen/util.py +++ b/toxygen/util.py @@ -2,6 +2,7 @@ import os import time import shutil import sys +import re program_version = '0.2.7' @@ -69,6 +70,15 @@ def is_64_bit(): return sys.maxsize > 2 ** 32 +def is_re_valid(regex): + try: + re.compile(regex) + except re.error: + return False + else: + return True + + class Singleton: _instance = None