[pypy-svn] r16197 - pypy/dist/pypy/module/_codecs
ale at codespeak.net
ale at codespeak.net
Mon Aug 22 14:11:17 CEST 2005
Author: ale
Date: Mon Aug 22 14:11:16 2005
New Revision: 16197
Modified:
pypy/dist/pypy/module/_codecs/app_codecs.py
Log:
Correcting errors
Modified: pypy/dist/pypy/module/_codecs/app_codecs.py
==============================================================================
--- pypy/dist/pypy/module/_codecs/app_codecs.py (original)
+++ pypy/dist/pypy/module/_codecs/app_codecs.py Mon Aug 22 14:11:16 2005
@@ -90,7 +90,7 @@
lookup = codec_lookup
-def encode(v, encoding='defaultencoding',errors='strict'):
+def encode(v, encoding=None, errors='strict'):
"""encode(obj, [encoding[,errors]]) -> object
Encodes obj using the codec registered for encoding. encoding defaults
@@ -100,6 +100,8 @@
'xmlcharrefreplace' as well as any other name registered with
codecs.register_error that can handle ValueErrors.
"""
+ if encoding == None:
+ encoding = sys.getdefaultencoding()
if isinstance(encoding,str):
encoder = lookup(encoding)[0]
if encoder and isinstance(errors,str):
@@ -110,7 +112,7 @@
else:
raise TypeError("Encoding must be a string")
-def decode(obj,encoding='defaultencoding',errors='strict'):
+def decode(obj,encoding=None,errors='strict'):
"""decode(obj, [encoding[,errors]]) -> object
Decodes obj using the codec registered for encoding. encoding defaults
@@ -120,6 +122,8 @@
as well as any other name registerd with codecs.register_error that is
able to handle ValueErrors.
"""
+ if encoding == None:
+ encoding = sys.getdefaultencoding()
if isinstance(encoding,str):
decoder = lookup(encoding)[1]
if decoder and isinstance(errors,str):
@@ -274,13 +278,19 @@
res = u''.join(p)
return res, len(res)
-def utf_16_ex_decode( data,errors='strict',final = True):
+def utf_16_ex_decode( data,errors='strict',byteorder=0,final = 0):
"""None
"""
- res = PyUnicode_DecodeUTF16Stateful(data,len(data),errors,'native')
+ if byteorder == 0:
+ byteorder = 'native'
+ elif byteorder == -1:
+ byteorder = 'little'
+ else:
+ byteorder = 'big'
+ res = PyUnicode_DecodeUTF16Stateful(data,len(data),errors,byteorder)
res = ''.join(res)
- return res, len(res)
-# XXX escape_decode Check if this is right
+ return res, len(res), byteorder
+
# XXX needs error messages when the input is invalid
def escape_decode(data,errors='strict'):
"""None
@@ -403,14 +413,14 @@
res = ''.join(res)
return res, len(res)
-def utf_16_le_decode( data,errors='strict',final = True):
+def utf_16_le_decode( data,errors='strict',byteorder=0, final = 0):
"""None
"""
res = PyUnicode_DecodeUTF16Stateful(data,len(data),errors,'little')
res = ''.join(res)
return res, len(res)
-def utf_16_be_decode( data,errors='strict',final = True):
+def utf_16_be_decode( data,errors='strict',byteorder=0, final = 0):
"""None
"""
res = PyUnicode_DecodeUTF16Stateful(data,len(data),errors,'big')
@@ -922,8 +932,8 @@
errmsg = "truncated data"
startinpos = q
endinpos = len(s)
- unicode_call_errorhandler()
-## /* The remaining input chars are ignored if the callback
+ unicode_call_errorhandler(errors,'utf-16',errmsg,startinpos,endinpos,True)
+# /* The remaining input chars are ignored if the callback
## chooses to skip the input */
ch = (ord(s[q+ihi]) << 8) | ord(s[q+ilo])
@@ -938,7 +948,7 @@
errmsg = "unexpected end of data"
startinpos = q-2
endinpos = len(s)
- unicode_call_errorhandler
+ unicode_call_errorhandler(errors,'utf-16',errmsg,startinpos,endinpos,True)
if (0xD800 <= ch and ch <= 0xDBFF):
ch2 = (ord(s[q+ihi]) << 8) | ord(s[q+ilo])
@@ -957,12 +967,12 @@
errmsg = "illegal UTF-16 surrogate"
startinpos = q-4
endinpos = startinpos+2
- unicode_call_errorhandler
+ unicode_call_errorhandler(errors,'utf-16',errmsg,startinpos,endinpos,True)
errmsg = "illegal encoding"
startinpos = q-2
endinpos = startinpos+2
- unicode_call_errorhandler
+ unicode_call_errorhandler(errors,'utf-16',errmsg,startinpos,endinpos,True)
return p
More information about the Pypy-commit
mailing list