[pypy-svn] r61086 - pypy/trunk/pypy/module/_codecs

fijal at codespeak.net fijal at codespeak.net
Sun Jan 18 22:04:45 CET 2009


Author: fijal
Date: Sun Jan 18 22:04:44 2009
New Revision: 61086

Modified:
   pypy/trunk/pypy/module/_codecs/app_codecs.py
Log:
A bit of dance to correctly pass this test


Modified: pypy/trunk/pypy/module/_codecs/app_codecs.py
==============================================================================
--- pypy/trunk/pypy/module/_codecs/app_codecs.py	(original)
+++ pypy/trunk/pypy/module/_codecs/app_codecs.py	Sun Jan 18 22:04:44 2009
@@ -210,7 +210,7 @@
 def charmap_decode( data, errors='strict', mapping=None):
     """None
     """
-    res = PyUnicode_DecodeCharmap(data, len(data), mapping, errors)
+    res = PyUnicode_DecodeCharmap(data, mapping, errors)
     res = u''.join(res)
     return res, len(data)
 
@@ -851,8 +851,9 @@
         inpos += 1
     return res
 
-def PyUnicode_DecodeCharmap(s, size, mapping, errors):
+def PyUnicode_DecodeCharmap(s, mapping, errors):
 
+    size = len(s)
 ##    /* Default to Latin-1 */
     if (mapping == None):
         import _codecs
@@ -874,16 +875,20 @@
                 else:
                     raise TypeError("character mapping must be in range(65536)")
             elif isinstance(x, unicode):
+                if x == u"\ufffe":
+                    raise KeyError
                 p += x
             elif not x:
                 raise KeyError
             else:
                 raise TypeError
+            inpos += 1
         except (KeyError, IndexError):
-            x = unicode_call_errorhandler(errors, "charmap",
-                "character maps to <undefined>", s, inpos, inpos+1)
-            p += x[0]
-        inpos += 1
+            next, inpos = unicode_call_errorhandler(errors, "charmap",
+                       "character maps to <undefined>", s, inpos, inpos+1)
+            p += next
+            inpos
+        print p
     return p
 
 def PyUnicode_DecodeRawUnicodeEscape(s, size, errors):



More information about the Pypy-commit mailing list