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

Reply via email to