X-Git-Url: https://deadsoftware.ru/gitweb?p=cpc.git;a=blobdiff_plain;f=src%2Fposix%2Fgeneric%2FDsw%2FMod%2FHostProcs.cp;h=c056a8e68ccf8e56da4916f41b480ec873667e14;hp=2aa47588c7f01b23520cbb15b40d655d14a38486;hb=cdd04b2dd68609adf653e0d2abd75d3475afc7ab;hpb=7147de0ec5fe252c907577218ae17a28ac84daba diff --git a/src/posix/generic/Dsw/Mod/HostProcs.cp b/src/posix/generic/Dsw/Mod/HostProcs.cp index 2aa4758..c056a8e 100644 --- a/src/posix/generic/Dsw/Mod/HostProcs.cp +++ b/src/posix/generic/Dsw/Mod/HostProcs.cp @@ -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);