Code

xmlrpc handling of unicode characters, see
authorschlatterbeck <schlatterbeck@57a73879-2fb5-44c3-a270-3262357dd7e2>
Thu, 8 Apr 2010 14:33:54 +0000 (14:33 +0000)
committerschlatterbeck <schlatterbeck@57a73879-2fb5-44c3-a270-3262357dd7e2>
Thu, 8 Apr 2010 14:33:54 +0000 (14:33 +0000)
http://thread.gmane.org/gmane.comp.bug-tracking.roundup.user/10040

git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/roundup/trunk@4475 57a73879-2fb5-44c3-a270-3262357dd7e2

CHANGES.txt
roundup/xmlrpc.py

index 2bf2c33dfaba774d85251f9c708ad995ffe0b2f8..da26da8629777e2f6d1e75c1636303a915036696 100644 (file)
@@ -5,6 +5,8 @@ are given with the most recent entry first.
 
 Fixed:
 - Handle multiple @action values from broken trackers.
+- xmlrpc handling of unicode characters, see
+  http://thread.gmane.org/gmane.comp.bug-tracking.roundup.user/10040
 
 
 2010-02-23 1.5.0
index b0495d07018aad4def9a220a9abac6f5e15f1b09..88ddb34f84930b871b51a745e6eac0c8d85f743a 100644 (file)
@@ -34,10 +34,17 @@ def props_from_args(db, cl, args, itemid=None):
     for arg in args:
         if arg.find('=') == -1:
             raise UsageError, 'argument "%s" not propname=value'%arg
-        l = arg.split('=')
-        if len(l) < 2:
+        try :
+            key, value = arg.split('=', 1)
+        except ValueError :
             raise UsageError, 'argument "%s" not propname=value'%arg
-        key, value = l[0], '='.join(l[1:])
+        if isinstance (key, unicode) :
+            try :
+                key = key.encode ('ascii')
+            except UnicodeEncodeError:
+                raise UsageError, 'argument %r is no valid ascii keyword'%key
+        if isinstance (value, unicode) :
+            value = value.encode ('utf-8')
         if value:
             try:
                 props[key] = hyperdb.rawToHyperdb(db, cl, itemid,