added interface to Tk_DoOneEvent (R Lindsay Todd)
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 77b1809..96a1c93 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -1031,6 +1031,26 @@
 }
 
 static PyObject *
+Tkapp_DoOneEvent (self, args)
+    PyObject *self;
+    PyObject *args;
+{
+    int	flags;
+    int rv;
+
+    if (PyArg_Parse (args, ""))
+	flags = TK_ALL_EVENTS;
+    else
+      {
+        PyErr_Clear();
+	if (!PyArg_Parse (args, "i", &flags))
+	  return NULL;
+      }
+    rv = Tk_DoOneEvent(flags);
+    return Py_BuildValue ("i", rv);
+}
+
+static PyObject *
 Tkapp_Quit (self, args)
      PyObject *self;
      PyObject *args;
@@ -1076,6 +1096,7 @@
   {"deletefilehandler", Tkapp_DeleteFileHandler},
   {"createtimerhandler", Tkapp_CreateTimerHandler},
   {"mainloop", Tkapp_MainLoop},
+  {"dooneevent", Tkapp_DoOneEvent},
   {"quit", Tkapp_Quit},
   {NULL, NULL}
 };
@@ -1165,6 +1186,7 @@
   {"deletefilehandler", Tkapp_DeleteFileHandler},
   {"createtimerhandler", Tkapp_CreateTimerHandler},
   {"mainloop", Tkapp_MainLoop},
+  {"dooneevent", Tkapp_DoOneEvent},
   {"quit", Tkapp_Quit},
   {NULL, NULL}
 };
@@ -1216,6 +1238,18 @@
   PyDict_SetItemString (d, "WRITABLE", v);
   v = Py_BuildValue ("i", TK_EXCEPTION);
   PyDict_SetItemString (d, "EXCEPTION", v);
+  v = Py_BuildValue ("i", TK_X_EVENTS);
+  PyDict_SetItemString (d, "X_EVENTS", v);
+  v = Py_BuildValue ("i", TK_FILE_EVENTS);
+  PyDict_SetItemString (d, "FILE_EVENTS", v);
+  v = Py_BuildValue ("i", TK_TIMER_EVENTS);
+  PyDict_SetItemString (d, "TIMER_EVENTS", v);
+  v = Py_BuildValue ("i", TK_IDLE_EVENTS);
+  PyDict_SetItemString (d, "IDLE_EVENTS", v);
+  v = Py_BuildValue ("i", TK_ALL_EVENTS);
+  PyDict_SetItemString (d, "ALL_EVENTS", v);
+  v = Py_BuildValue ("i", TK_DONT_WAIT);
+  PyDict_SetItemString (d, "DONT_WAIT", v);
 
 #ifdef WITH_READLINE
   rl_event_hook = EventHook;