aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvidon2004-10-20 19:21:01 +0000
committervidon2004-10-20 19:21:01 +0000
commit045b0e9817472a67ad55ac56cfc3693fb85c1c7a (patch)
treea92117c7f6fa64bdd7a9526fe2bf92bf91d97251
parent549b43d1d15eb2498cb0f17475340a5f1c611784 (diff)
downloadivycpy-045b0e9817472a67ad55ac56cfc3693fb85c1c7a.zip
ivycpy-045b0e9817472a67ad55ac56cfc3693fb85c1c7a.tar.gz
ivycpy-045b0e9817472a67ad55ac56cfc3693fb85c1c7a.tar.bz2
ivycpy-045b0e9817472a67ad55ac56cfc3693fb85c1c7a.tar.xz
La fonction IvyGetApplicationMessages renvoie maintenant un tuple des messages reconnus par le client identifié par l'IvyClientPtr
-rw-r--r--ivycpy.i25
1 files changed, 23 insertions, 2 deletions
diff --git a/ivycpy.i b/ivycpy.i
index 8495f4a..1b44c5c 100644
--- a/ivycpy.i
+++ b/ivycpy.i
@@ -595,7 +595,8 @@ pytkMsgDirectCallback( IvyClientPtr app, void *user_data, int id, char *msg )
PyTuple_SetItem(arglist,1,PyString_FromString(msg));
result = PyEval_CallObject(func,arglist);
-
+ Py_DECREF(arglist);
+ Py_DECREF(ivyclienttuple);
}
static void
@@ -631,7 +632,8 @@ pyMsgDirectCallback( IvyClientPtr app, void *user_data, int id, char *msg )
PyTuple_SetItem(arglist,1,PyString_FromString(msg));
result = PyEval_CallObject(func,arglist);
-
+ Py_DECREF(arglist);
+ Py_DECREF(ivyclienttuple);
}
/* facade to IvyBindMsg avoiding vararg problem */
@@ -1090,6 +1092,24 @@ pyIvyInit(
$1 = $input;
}
+%typemap(python,out) char** {
+ int size=0, i;
+ char **msgList;
+ msgList=$1;
+ while (*msgList )
+ {
+ /*printf("Message to '%s'\n",*msgList++);*/
+ *msgList++;
+ size++;
+ }
+ resultobj=PyTuple_New(size);
+ msgList=$1;
+ for (i = 0; i < size; i++) {
+ PyTuple_SetItem(resultobj,i,PyString_FromString(*msgList++));
+ }
+ $result=resultobj;
+}
+
// part 3
// on place ici les donnees, fonctions a wrapper
@@ -1124,6 +1144,7 @@ IvyGetApplication( char *name );
char *
IvyGetApplicationName( IvyClientPtr app );
char *IvyGetApplicationHost( IvyClientPtr app );
+char **IvyGetApplicationMessages( IvyClientPtr app);
/* emission d'un message d'erreur */
void
pyIvySendError( IvyClientPtr app, int id, const char *message);