OSDN Git Service

In addon manifest convert all strings to unicode (translated and untranslated) using...
authorrui Batista <ruiandrebatista@gmail.com>
Wed, 2 May 2012 13:56:17 +0000 (14:56 +0100)
committerrui Batista <ruiandrebatista@gmail.com>
Wed, 2 May 2012 13:56:17 +0000 (14:56 +0100)
Assumed encoding for all manifest data is utf-8, and the manifest file is decoded using this codec. No automatic encoding detection (as per configobj support) is atempted.

source/addonHandler.py

index 44dedc1..e319410 100644 (file)
@@ -478,7 +478,7 @@ url= string(default=None)
                @param translatedInput: translated manifest input
                @type translatedInput: file-like object
                """
-               super(AddonManifest, self).__init__(input, configspec=self.configspec)
+               super(AddonManifest, self).__init__(input, configspec=self.configspec, encoding='utf-8', default_encoding='utf-8')
                self._errors = []
                val = Validator()
                result = self.validate(val, copy=True, preserve_errors=True)
@@ -486,12 +486,11 @@ url= string(default=None)
                        self._errors = result
                self._translatedConfig = None
                if translatedInput is not None:
-                       self._translatedConfig = ConfigObj(translatedInput)
+                       self._translatedConfig = ConfigObj(translatedInput, encoding='utf-8', default_encoding='utf-8')
                        for k in ('summary','description'):
                                val=self._translatedConfig.get(k)
                                if val:
-                                       # Convert to unicode. Try utf-8 if configobj did not detect the encoding.
-                                       self[k]=val.decode(self._translatedConfig.encoding or "utf-8")
+                                       self[k]=val
 
        @property
        def errors(self):