+int eConsoleAppContainer::execute( PyObject *cmdline, PyObject *args )
+{
+ if (!PyString_Check(cmdline))
+ return -1;
+ if (!PyList_Check(args))
+ return -1;
+ const char *argv[PyList_Size(args) + 1];
+ int i;
+ for (i = 0; i < PyList_Size(args); ++i)
+ {
+ PyObject *arg = PyList_GetItem(args, i); /* borrowed ref */
+ if (!arg)
+ return -1;
+ if (!PyString_Check(arg))
+ return -1;
+ argv[i] = PyString_AsString(arg); /* borrowed pointer */
+ }
+ argv[i] = 0;
+
+ return execute(PyString_AsString(cmdline), argv); /* borrowed pointer */
+}
+