Prevent a unicode error on UTF-8 in commit metadata.
authorNeil <neil@dip.sun.ac.za>
Sat, 19 Oct 2013 11:52:53 +0000 (07:52 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Sat, 19 Oct 2013 11:52:53 +0000 (07:52 -0400)
Having utf-8 in the commit metada (e.g author, commit message, file
names) triggered a decoding error:

"UnicodeDecodeError: 'ascii' codec can't decode byte 0xd7 in position 42: ordinal not in range(128)"

This is because the __unicode__ method of the Commit class, doesn't
actually return an object of type 'unicode' although it should.

irkerhook.py

index d09eb17d526f419b5023e3924cdc313694779eb1..b622a44579392cc980b23443f3ed2b452b11dfcd 100755 (executable)
@@ -88,7 +88,7 @@ class Commit:
                     self.url = webview
             except IOError:
                 self.url = ""
-        return self.template % self.__dict__
+        return unicode(self.template % self.__dict__, "utf-8")
 
 class GenericExtractor:
     "Generic class for encapsulating data from a VCS."