Many calls to tk.call involve an arglist containing a single tuple.

Calls using METH_OLDARGS unpack this tuple; calls using METH_VARARG
don't.  Tcl's concatenation of args was affected; IDLE doesn't start.

Modify Tkapp_Call() to unpack single tuple arglists.

Bug 1733943
Ref http://mail.python.org/pipermail/python-checkins/2007-May/060454.html
This commit is contained in:
Kurt B. Kaiser 2007-07-05 22:03:39 +00:00
parent e81119295e
commit d67a3b9503

View file

@ -1285,6 +1285,12 @@ Tkapp_Call(PyObject *selfptr, PyObject *args)
/* Could add TCL_EVAL_GLOBAL if wrapped by GlobalCall... */
int flags = TCL_EVAL_DIRECT;
/* If args is a single tuple, replace with contents of tuple */
if (1 == PyTuple_Size(args)){
PyObject* item = PyTuple_GetItem(args, 0);
if (PyTuple_Check(item))
args = item;
}
#ifdef WITH_THREAD
if (self->threaded && self->thread_id != Tcl_GetCurrentThread()) {
/* We cannot call the command directly. Instead, we must