diff --git a/src/callbacks.py b/src/callbacks.py index 6885416cf..3055dc322 100644 --- a/src/callbacks.py +++ b/src/callbacks.py @@ -78,8 +78,7 @@ def canonicalName(command): def reply(msg, s): """Makes a reply to msg with the payload s""" - if ircutils.funkyArgument(s): - s = repr(s) + s = ircutils.safeArgument(s) if ircutils.isChannel(msg.args[0]): m = ircmsgs.privmsg(msg.args[0], '%s: %s' % (msg.nick, s)) else: @@ -265,8 +264,7 @@ class IrcObjectProxy: if isinstance(self.irc, self.__class__): self.irc.reply(msg, s) else: - if ircutils.funkyArgument(s): - s = repr(s) + s = ircutils.safeArgument(s) self.irc.queueMsg(reply(msg, s)) else: self.args[self.counter] = s diff --git a/src/ircutils.py b/src/ircutils.py index a72df0cc3..1e1cbf532 100644 --- a/src/ircutils.py +++ b/src/ircutils.py @@ -161,8 +161,11 @@ def validArgument(s): return '\r' not in s and '\n' not in s and '\x00' not in s notFunky = string.printable+'\x02' -def funkyArgument(s): - return validArgument(s) and s.translate(string.ascii, notFunky) != '' +def safeArgument(s): + if validArgument(s) and s.translate(string.ascii, notFunky) == s: + return s + else: + return repr(s) def reply(msg): if isChannel(msg.args[0]):