chiark / gitweb /
put xargs in right place
authorian <ian>
Sat, 18 Dec 2004 19:33:28 +0000 (19:33 +0000)
committerian <ian>
Sat, 18 Dec 2004 19:33:28 +0000 (19:33 +0000)
base/scriptinv.c

index 1ac7e82..cdaec8b 100644 (file)
@@ -16,7 +16,7 @@ void scriptinv_cancel(ScriptToInvoke *si) {
 
 int scriptinv_set(ScriptToInvoke *si, Tcl_Interp *ip,
                  Tcl_Obj *newscript, Tcl_Obj *xargs) {
-  int rc;
+  int rc, xlength;
   
   scriptinv_cancel(si);
 
@@ -24,8 +24,9 @@ int scriptinv_set(ScriptToInvoke *si, Tcl_Interp *ip,
   Tcl_IncrRefCount(newscript);
 
   if (xargs) {
-    rc= Tcl_ListObjLength(ip, xargs, &si->llength);  if (rc) return rc;
+    rc= Tcl_ListObjLength(ip, xargs, &xlength);  if (rc) return rc;
     Tcl_IncrRefCount(xargs);
+    si->llength += xlength;
   }
 
   si->obj= newscript;
@@ -41,6 +42,7 @@ void scriptinv_invoke(ScriptToInvoke *si, int argc, Tcl_Obj **argv) {
   assert(si->obj);
 
   for (i=0; i<argc; i++) Tcl_IncrRefCount(argv[i]);
+
   invoke= Tcl_DuplicateObj(si->obj);
   Tcl_IncrRefCount(invoke);