Execute:
PUBLIC
PROC [fileRope: Rope.
ROPE, commandRope: Rope.
ROPE] ~ {
fileString: UXStrings.UnixString ~ UXStrings.Create[from: fileRope];
pos: INT ¬ 0;
length: INT ~ Rope.Length[commandRope];
index: INT ¬ 0;
pos ¬ commandRope.SkipOver[skip: " ", pos: pos];
argv ¬ NEW [Env [ 20 ]];
envp ¬ NEW [Env [ 20 ]];
WHILE pos < length
DO
pos1: INT ~ commandRope.SkipTo[skip: " ", pos: pos];
sub: ROPE ~ commandRope.Substr[start: pos, len: pos1-pos];
argString: UXStrings.UnixString ~ UXStrings.Create[from: sub];
TRUSTED {
argv[index] ¬ argString;
};
index ¬ index + 1;
pos ¬ commandRope.SkipOver[skip: " ", pos: pos1];
ENDLOOP;
TRUSTED {
argv[index] ¬ empty;
envp[0] ¬ empty;
};
ExecVE[fileString, argv, envp];
};