summaryrefslogtreecommitdiffstats
path: root/sip/tdecore/tdeapplication.sip
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2023-01-03 15:29:41 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2023-01-07 22:14:56 +0900
commit4ce11cc30df1805459a615960fdec204a975548a (patch)
tree084f1e1fa404bdf0d082b1a58acf392b5d177326 /sip/tdecore/tdeapplication.sip
parent065f41b4908b11278d4334e8c85150ec0fd4a9f6 (diff)
downloadpytde-4ce11cc30df1805459a615960fdec204a975548a.tar.gz
pytde-4ce11cc30df1805459a615960fdec204a975548a.zip
Drop python2 support.
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'sip/tdecore/tdeapplication.sip')
-rw-r--r--sip/tdecore/tdeapplication.sip37
1 files changed, 22 insertions, 15 deletions
diff --git a/sip/tdecore/tdeapplication.sip b/sip/tdecore/tdeapplication.sip
index 1f568a8..4f167b4 100644
--- a/sip/tdecore/tdeapplication.sip
+++ b/sip/tdecore/tdeapplication.sip
@@ -400,10 +400,9 @@ typedef ulong Atom;
// Convert a Python argv list to a conventional C argc count and argv array.
char **pyArgvToC(PyObject *argvlist,int *argcp)
{
- int argc;
char **argv;
- argc = PyList_Size(argvlist);
+ int argc = PyList_Size(argvlist);
// Allocate space for two copies of the argument pointers, plus the
// terminating NULL.
@@ -413,22 +412,30 @@ char **pyArgvToC(PyObject *argvlist,int *argcp)
// Convert the list.
for (int a = 0; a < argc; ++a)
{
- char *arg;
-
- // Get the argument and allocate memory for it.
- if ((arg = PyString_AsString(PyList_GetItem(argvlist,a))) == NULL ||
- (argv[a] = (char *)sipMalloc(strlen(arg) + 1)) == NULL)
- return NULL;
+ PyObject *argObject = PyList_GET_ITEM(argvlist, a);
+ char *arg;
+
+ if (PyUnicode_Check(argObject))
+ {
+ arg = tqstrdup(sipString_AsUTF8String(&argObject));
+ }
+ else if (SIPBytes_Check(argObject))
+ {
+ arg = tqstrdup(SIPBytes_AS_STRING(argObject));
+ }
+ else
+ {
+ return NULL;
+ }
- // Copy the argument and save a pointer to it.
- strcpy(argv[a],arg);
- argv[a + argc + 1] = argv[a];
+ argv[a] = argv[a + argc + 1] = arg;
}
- argv[argc + argc + 1] = argv[argc] = NULL;
-
- *argcp = argc;
-
+ argv[argc] = argv[argc + argc + 1] = NULL;
+ if (argcp)
+ {
+ *argcp = argc;
+ }
return argv;
}