Commit 1fa649f2 authored by Martin v. Löwis's avatar Martin v. Löwis

Patch #986929: Add support for wish -sync and -use options.

parent 9441c078
...@@ -72,6 +72,8 @@ Extension modules ...@@ -72,6 +72,8 @@ Extension modules
Library Library
------- -------
- Tkinter now supports the wish -sync and -use options.
- The following methods in time support passing of None: ctime(), gmtime(), - The following methods in time support passing of None: ctime(), gmtime(),
and localtime(). If None is provided, the current time is used (the and localtime(). If None is provided, the current time is used (the
same as when the argument is omitted). same as when the argument is omitted).
......
...@@ -576,7 +576,7 @@ static void DisableEventHook(void); /* Forward */ ...@@ -576,7 +576,7 @@ static void DisableEventHook(void); /* Forward */
static TkappObject * static TkappObject *
Tkapp_New(char *screenName, char *baseName, char *className, Tkapp_New(char *screenName, char *baseName, char *className,
int interactive, int wantobjects, int wantTk) int interactive, int wantobjects, int wantTk, int sync, char *use)
{ {
TkappObject *v; TkappObject *v;
char *argv0; char *argv0;
...@@ -644,6 +644,35 @@ Tkapp_New(char *screenName, char *baseName, char *className, ...@@ -644,6 +644,35 @@ Tkapp_New(char *screenName, char *baseName, char *className,
Tcl_SetVar(v->interp, "_tkinter_skip_tk_init", "1", TCL_GLOBAL_ONLY); Tcl_SetVar(v->interp, "_tkinter_skip_tk_init", "1", TCL_GLOBAL_ONLY);
} }
/* some initial arguments need to be in argv */
if (sync || use) {
int len = 0;
if (sync)
len += sizeof "-sync";
if (use)
len += strlen(use) + sizeof "-use ";
char *args = (char*)ckalloc(len);
if (!args) {
PyErr_NoMemory();
Py_DECREF(v);
return NULL;
}
args[0] = '\0';
if (sync)
strcat(args, "-sync");
if (use) {
if (sync)
strcat(args, " ");
strcat(args, "-use ");
strcat(args, use);
}
Tcl_SetVar(v->interp, "argv", args, TCL_GLOBAL_ONLY);
ckfree(args);
}
if (Tcl_AppInit(v->interp) != TCL_OK) if (Tcl_AppInit(v->interp) != TCL_OK)
return (TkappObject *)Tkinter_Error((PyObject *)v); return (TkappObject *)Tkinter_Error((PyObject *)v);
...@@ -2835,6 +2864,8 @@ Tkinter_Create(PyObject *self, PyObject *args) ...@@ -2835,6 +2864,8 @@ Tkinter_Create(PyObject *self, PyObject *args)
int interactive = 0; int interactive = 0;
int wantobjects = 0; int wantobjects = 0;
int wantTk = 1; /* If false, then Tk_Init() doesn't get called */ int wantTk = 1; /* If false, then Tk_Init() doesn't get called */
int sync = 0; /* pass -sync to wish */
char *use = NULL; /* pass -use to wish */
baseName = strrchr(Py_GetProgramName(), '/'); baseName = strrchr(Py_GetProgramName(), '/');
if (baseName != NULL) if (baseName != NULL)
...@@ -2843,13 +2874,15 @@ Tkinter_Create(PyObject *self, PyObject *args) ...@@ -2843,13 +2874,15 @@ Tkinter_Create(PyObject *self, PyObject *args)
baseName = Py_GetProgramName(); baseName = Py_GetProgramName();
className = "Tk"; className = "Tk";
if (!PyArg_ParseTuple(args, "|zssiii:create", if (!PyArg_ParseTuple(args, "|zssiiiiz:create",
&screenName, &baseName, &className, &screenName, &baseName, &className,
&interactive, &wantobjects, &wantTk)) &interactive, &wantobjects, &wantTk,
&sync, &use))
return NULL; return NULL;
return (PyObject *) Tkapp_New(screenName, baseName, className, return (PyObject *) Tkapp_New(screenName, baseName, className,
interactive, wantobjects, wantTk); interactive, wantobjects, wantTk,
sync, use);
} }
static PyObject * static PyObject *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment