Author: Alex Gaynor <alex.gay...@gmail.com> Branch: stdlib-2.7.8 Changeset: r73084:27bd5f479a55 Date: 2014-08-27 10:18 -0700 http://bitbucket.org/pypy/pypy/changeset/27bd5f479a55/
Log: More methods for tkapp 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 @@ -474,6 +474,41 @@ self.raiseTclError() return v[0] + def exprboolean(self, s): + if '\x00' in s: + raise TypeError + v = tkffi.new("int*") + res = tklib.Tcl_ExprBoolean(self.interp, s, v) + if res == tklib.TCL_ERROR: + self.raiseTclError() + return v[0] + + def exprlong(self, s): + if '\x00' in s: + raise TypeError + v = tkffi.new("long*") + res = tklib.Tcl_ExprLong(self.interp, s, v) + if res == tklib.TCL_ERROR: + self.raiseTclError() + return v[0] + + def exprdouble(self, s): + if '\x00' in s: + raise TypeError + v = tkffi.new("double*") + res = tklib.Tcl_ExprDouble(self.interp, s, v) + if res == tklib.TCL_ERROR: + self.raiseTclError() + return v[0] + + def exprstring(self, s): + if '\x00' in s: + raise TypeError + res = tklib.Tcl_ExprString(self.interp, s) + if res == tklib.TCL_ERROR: + self.raiseTclError() + return tkffi.string(tklib.Tcl_GetStringResult(self.interp)) + def mainloop(self, threshold): self._check_tcl_appartment() self.dispatching = True diff --git a/lib_pypy/_tkinter/tklib.py b/lib_pypy/_tkinter/tklib.py --- a/lib_pypy/_tkinter/tklib.py +++ b/lib_pypy/_tkinter/tklib.py @@ -76,6 +76,11 @@ char *Tcl_GetStringFromObj(Tcl_Obj* objPtr, int* lengthPtr); unsigned char *Tcl_GetByteArrayFromObj(Tcl_Obj* objPtr, int* lengthPtr); +int Tcl_ExprBoolean(Tcl_Interp* interp, const char *expr, int *booleanPtr); +int Tcl_ExprLong(Tcl_Interp* interp, const char *expr, long* longPtr); +int Tcl_ExprDouble(Tcl_Interp* interp, const char *expr, double* doublePtr); +int Tcl_ExprString(Tcl_Interp* interp, const char *expr); + Tcl_UniChar *Tcl_GetUnicode(Tcl_Obj* objPtr); int Tcl_GetCharLength(Tcl_Obj* objPtr); _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit