From 344e8c8d6c1fc0fb6d03d2500d88f918fd4d46a8 Mon Sep 17 00:00:00 2001 From: mathieui Date: Sat, 15 Dec 2012 23:34:28 +0100 Subject: [PATCH] fix a traceback when we accidentally seek() in the middle of a char --- src/logger.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/logger.py b/src/logger.py index da1aa09b..ae2e7a55 100644 --- a/src/logger.py +++ b/src/logger.py @@ -81,15 +81,19 @@ class Logger(object): return pos = fd.seek(0, 2) - while len(fd.readlines()) < nb + 1: + reads = fd.readlines() + while len(reads) < nb + 1: pos -= 100 if pos < 0: break fd.seek(pos) - fd.seek(pos) - logs = fd.readlines() + try: + reads = fd.readlines() + except UnicodeDecodeError: + pass fd.close() - return logs[-nb:] + logs = reads[-nb:] + return logs def log_message(self, jid, nick, msg): """