Author: Amaury Forgeot d'Arc <amaur...@gmail.com>
Branch: py3.3
Changeset: r75145:ac735d653e72
Date: 2014-12-21 11:22 +0100
http://bitbucket.org/pypy/pypy/changeset/ac735d653e72/

Log:    More fixes: tcl functions take strings, not bytes

diff --git a/lib_pypy/_tkinter/app.py b/lib_pypy/_tkinter/app.py
--- a/lib_pypy/_tkinter/app.py
+++ b/lib_pypy/_tkinter/app.py
@@ -495,9 +495,9 @@
     def getdouble(self, s):
         if isinstance(s, float):
             return s
+        if '\x00' in s:
+            raise TypeError
         s = s.encode('utf-8')
-        if b'\x00' in s:
-            raise TypeError
         v = tkffi.new("double*")
         res = tklib.Tcl_GetDouble(self.interp, s, v)
         if res == tklib.TCL_ERROR:
@@ -505,8 +505,9 @@
         return v[0]
 
     def exprboolean(self, s):
-        if b'\x00' in s:
+        if '\x00' in s:
             raise TypeError
+        s = s.encode('utf-8')
         v = tkffi.new("int*")
         res = tklib.Tcl_ExprBoolean(self.interp, s, v)
         if res == tklib.TCL_ERROR:
@@ -514,8 +515,9 @@
         return v[0]
 
     def exprlong(self, s):
-        if b'\x00' in s:
+        if '\x00' in s:
             raise TypeError
+        s = s.encode('utf-8')
         v = tkffi.new("long*")
         res = tklib.Tcl_ExprLong(self.interp, s, v)
         if res == tklib.TCL_ERROR:
@@ -523,8 +525,9 @@
         return v[0]
 
     def exprdouble(self, s):
-        if b'\x00' in s:
+        if '\x00' in s:
             raise TypeError
+        s = s.encode('utf-8')
         v = tkffi.new("double*")
         res = tklib.Tcl_ExprDouble(self.interp, s, v)
         if res == tklib.TCL_ERROR:
@@ -532,12 +535,14 @@
         return v[0]
 
     def exprstring(self, s):
-        if b'\x00' in s:
+        if '\x00' in s:
             raise TypeError
+        s = s.encode('utf-8')
         res = tklib.Tcl_ExprString(self.interp, s)
         if res == tklib.TCL_ERROR:
             self.raiseTclError()
-        return tkffi.string(tklib.Tcl_GetStringResult(self.interp))
+        return FromTclString(tkffi.string(
+            tklib.Tcl_GetStringResult(self.interp)))
 
     def mainloop(self, threshold):
         self._check_tcl_appartment()
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to