PROCEDURE ProcessFiles;
VAR
pathname: ARRAY 512 OF CHAR;
in: Streams.Stream;
BEGIN
IF Args.GetArg(pathname) THEN
REPEAT
IF ~UnixFiles.Open(in, pathname,
UnixFiles.read, Streams.onebuf, NIL) THEN
Write.StringS(Streams.stderr, pathname);
Write.StringS(Streams.stderr, ": cannot be ");
Write.StringS(Streams.stderr, "opened for ");
Write.LineS(Streams.stderr, "reading");
Process.Exit(Process.indicateFailure);
END;
IF ~Copy(in, Streams.stdout) THEN
Write.StringS(Streams.stderr, "write error ");
Write.StringS(Streams.stderr, "while copying ");
Write.LineS(Streams.stderr, pathname);
END;
Streams.Release(in);
UNTIL ~Args.GetArg(pathname);
ELSE
IF ~Copy(Streams.stdin, Streams.stdout) THEN
Write.StringS(Streams.stderr, "write error ");
Write.StringS(Streams.stderr, "while copying ");
Write.LineS(Streams.stderr, "standard input");
END;
END;
END ProcessFiles;
|