From a63156c020986c664adc93b77202dd23943a0b3e Mon Sep 17 00:00:00 2001 From: fcolin Date: Thu, 18 Sep 2003 16:02:35 +0000 Subject: modif callback argument ( c'etait tres merdique avant ) pas de possibilite de mettre des blancs dans les arguments --- src/ivytcl.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/ivytcl.c b/src/ivytcl.c index c3461bd..bdb2a55 100755 --- a/src/ivytcl.c +++ b/src/ivytcl.c @@ -164,9 +164,10 @@ IvyAppCB(IvyClientPtr app, else { strcat(script_to_call, "???"); } - strcat(script_to_call, " "); + strcat(script_to_call, " \""); strcat(script_to_call, app_event_str[event%2]); - + strcat(script_to_call, "\""); + Tcl_Preserve(filter->interp); result = Tcl_GlobalEval(filter->interp, script_to_call); ckfree(script_to_call); @@ -197,8 +198,9 @@ IvyDieCB(IvyClientPtr app, size = strlen(filter->script) + INTEGER_SPACE + 1; script_to_call = ckalloc(size); strcpy(script_to_call, filter->script); - strcat(script_to_call, " "); + strcat(script_to_call, " \""); strcat(script_to_call, idstr); + strcat(script_to_call, "\""); Tcl_Preserve(filter->interp); result = Tcl_GlobalEval(filter->interp, script_to_call); @@ -220,18 +222,20 @@ IvyMsgCB(IvyClientPtr app, int result, i, size; char *script_to_call; - size = strlen(filter->script) + 1; + size = strlen(filter->script) + 3; for (i = 0; i < argc; i++) { - size += strlen(argv[i]) + 1; + size += strlen(argv[i]) + 3; } size ++; script_to_call = ckalloc(size); strcpy(script_to_call, filter->script); - strcat(script_to_call, " "); + strcat(script_to_call, " {"); for (i = 0; i < argc; i++) { - strcat(script_to_call, argv[i]); - strcat(script_to_call, " "); + strcat(script_to_call, "\""); + strcat(script_to_call, argv[i]); + strcat(script_to_call, "\" "); } + strcat(script_to_call, "}"); Tcl_Preserve(filter->interp); result = Tcl_GlobalEval(filter->interp, script_to_call); @@ -264,8 +268,9 @@ IvyDirectMsgCB(IvyClientPtr app, strcpy(script_to_call, filter->script); strcat(script_to_call, " "); strcat(script_to_call, int_buffer); - strcat(script_to_call, " "); + strcat(script_to_call, " \""); strcat(script_to_call, msg); + strcat(script_to_call, "\""); Tcl_Preserve(filter->interp); result = Tcl_GlobalEval(filter->interp, script_to_call); -- cgit v1.1