From cefd91d4f13236cc1d1415e62d31b91d6466cb3f Mon Sep 17 00:00:00 2001 From: Valentin Lorentz Date: Fri, 31 May 2013 15:42:57 +0200 Subject: [PATCH] Fix encoding issues with Alias containing non-ascii characters. --- plugins/Alias/test.py | 2 ++ src/utils/str.py | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/Alias/test.py b/plugins/Alias/test.py index c9fc8c12d..a68829980 100644 --- a/plugins/Alias/test.py +++ b/plugins/Alias/test.py @@ -68,6 +68,8 @@ class AliasTestCase(ChannelPluginTestCase): def testAliasHelp(self): self.assertNotError('alias add slashdot foo') self.assertRegexp('help slashdot', "Alias for .*foo") + self.assertNotError('alias add nonascii echo éé') + self.assertRegexp('help nonascii', "Alias for .*echo éé") def testRemove(self): self.assertNotError('alias add foo echo bar') diff --git a/src/utils/str.py b/src/utils/str.py index bc7e0fdfd..82c4c18f4 100644 --- a/src/utils/str.py +++ b/src/utils/str.py @@ -444,10 +444,12 @@ def format(s, *args, **kwargs): char = match.group(1) if char == 's': token = args.pop() - if isinstance(token, unicode) or isinstance(token, str): + if isinstance(token, str): return token + elif sys.version_info[0] < 3 and isinstance(token, unicode): + return token.encode('utf8') else: - return unicode(token) + return str(token) elif char == 'i': # XXX Improve me! return str(args.pop())