diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/core.py | 5 | ||||
-rwxr-xr-x | src/daemon.py | 5 | ||||
-rw-r--r-- | src/tabs.py | 3 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/core.py b/src/core.py index 883eb8fa..1023c748 100644 --- a/src/core.py +++ b/src/core.py @@ -2164,7 +2164,10 @@ class Core(object): self.remote_fifo = None else: e = Executor(command.strip()) - e.start() + try: + e.start() + except ValueError as e: # whenever shlex fails + self.information('%s' % (e,), 'Error') def get_conversation_messages(self): """ diff --git a/src/daemon.py b/src/daemon.py index b413f465..4b4c0b79 100755 --- a/src/daemon.py +++ b/src/daemon.py @@ -22,7 +22,7 @@ command on your local machine. import sys import threading import subprocess - +import shlex import logging log = logging.getLogger(__name__) @@ -40,7 +40,8 @@ class Executor(threading.Thread): def run(self): log.info('executing %s' % (self.command.strip(),)) - subprocess.call(self.command.split()) + command = shlex.split(self.command) + subprocess.call(command) def main(): while True: diff --git a/src/tabs.py b/src/tabs.py index 45860acc..8316d2a3 100644 --- a/src/tabs.py +++ b/src/tabs.py @@ -1318,6 +1318,7 @@ class MucTab(ChatTab): Note that user can be None even if nickname is not None. It happens when we receive an history message said by someone who is not in the room anymore + Return True if the message highlighted us. False otherwise. """ self.log_message(txt, time, nickname) user = self.get_user_by_name(nickname) if nickname is not None else None @@ -1331,6 +1332,7 @@ class MucTab(ChatTab): if self.state != 'highlight': self.state = 'message' nick_color = nick_color or None + highlight = False if (not nickname or time) and not txt.startswith('/me '): txt = '\x195}%s' % (txt,) else: # TODO @@ -1339,6 +1341,7 @@ class MucTab(ChatTab): nick_color = highlight time = time or datetime.now() self._text_buffer.add_message(txt, time, nickname, nick_color, history, user) + return highlight class PrivateTab(ChatTab): """ |