Author: Amaury Forgeot d'Arc <[email protected]>
Branch: more-rposix
Changeset: r74348:96cace28d98e
Date: 2014-11-05 20:03 +0100
http://bitbucket.org/pypy/pypy/changeset/96cace28d98e/
Log: Translation and test fixes
diff --git a/rpython/annotator/bookkeeper.py b/rpython/annotator/bookkeeper.py
--- a/rpython/annotator/bookkeeper.py
+++ b/rpython/annotator/bookkeeper.py
@@ -238,10 +238,11 @@
else:
result = SomeString(no_nul=no_nul)
elif tp is unicode:
+ no_nul = not u'\x00' in x
if len(x) == 1:
- result = SomeUnicodeCodePoint()
+ result = SomeUnicodeCodePoint(no_nul=no_nul)
else:
- result = SomeUnicodeString()
+ result = SomeUnicodeString(no_nul=no_nul)
elif tp is bytearray:
result = SomeByteArray()
elif tp is tuple:
diff --git a/rpython/annotator/unaryop.py b/rpython/annotator/unaryop.py
--- a/rpython/annotator/unaryop.py
+++ b/rpython/annotator/unaryop.py
@@ -537,7 +537,7 @@
enc = s_enc.const
if enc not in ('ascii', 'latin-1', 'utf-8'):
raise AnnotatorError("Encoding %s not supported for unicode" %
(enc,))
- return SomeString()
+ return SomeString(no_nul=self.no_nul)
method_encode.can_only_throw = [UnicodeEncodeError]
@@ -570,7 +570,7 @@
enc = s_enc.const
if enc not in ('ascii', 'latin-1', 'utf-8'):
raise AnnotatorError("Encoding %s not supported for strings" %
(enc,))
- return SomeUnicodeString()
+ return SomeUnicodeString(no_nul=self.no_nul)
method_decode.can_only_throw = [UnicodeDecodeError]
class __extend__(SomeChar, SomeUnicodeCodePoint):
diff --git a/rpython/rlib/test/test_rposix.py b/rpython/rlib/test/test_rposix.py
--- a/rpython/rlib/test/test_rposix.py
+++ b/rpython/rlib/test/test_rposix.py
@@ -1,7 +1,7 @@
from rpython.rtyper.test.test_llinterp import interpret
from rpython.translator.c.test.test_genc import compile
from rpython.tool.udir import udir
-from rpython.rlib import rposix
+from rpython.rlib import rposix, rstring
import os, sys
import py
@@ -15,13 +15,15 @@
if sys.platform == 'win32':
def as_bytes(self):
from rpython.rlib.runicode import unicode_encode_mbcs
- return unicode_encode_mbcs(self.unistr, len(self.unistr),
- "strict")
+ res = unicode_encode_mbcs(self.unistr, len(self.unistr),
+ "strict")
+ return rstring.assert_str0(res)
else:
def as_bytes(self):
from rpython.rlib.runicode import unicode_encode_utf_8
- return unicode_encode_utf_8(self.unistr, len(self.unistr),
- "strict")
+ res = unicode_encode_utf_8(self.unistr, len(self.unistr),
+ "strict")
+ return rstring.assert_str0(res)
def as_unicode(self):
return self.unistr
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit