DEADSOFTWARE

DswHostProcs: fix argument passing again
[cpc.git] / src / posix / generic / Dsw / Mod / HostProcs.cp
index 2aa47588c7f01b23520cbb15b40d655d14a38486..c056a8e68ccf8e56da4916f41b480ec873667e14 100644 (file)
@@ -102,14 +102,16 @@ MODULE DswHostProcs;
       UString = POINTER [untagged] TO ARRAY [untagged] OF SHORTCHAR;
       SUString = POINTER TO ARRAY OF UString;
     VAR
-      i, j: INTEGER; pid: unistd.pid_t; res: unistd.int; argv: SUString;
+      i: INTEGER; pid: unistd.pid_t; res: unistd.int; argv: SUString; s: String;
   BEGIN
     ASSERT(p.pid = -1, 20);
     ASSERT(p.argv # NIL, 21);
-    NEW(argv, LEN(p.argv) + 1);
+    NEW(argv, LEN(p.argv) + 2);
     FOR i := 0 TO LEN(p.argv) - 1 DO
-      argv[i] := SYSTEM.VAL(UString, SYSTEM.ADR(p.argv[i, 0]))
+      s := p.argv[i];
+      argv[i] := SYSTEM.VAL(UString, SYSTEM.ADR(s[0]))
     END;
+    argv[i] := NIL;
     pid := unistd.fork();
     IF pid = 0 THEN
       res := unistd.execv(argv[0], argv);