The val command has a special argument, -, which causes reading of the standard input until an end-of-file condition is detected. Each line read is independently processed as if it were a command line argument list.
This permits one val command
with different values for key letters and file arguments.
val - -yc -mabc s.abc -mxyz -ypl1 s.xyz
val first checks whether file s.abc has a value c for its type flag and value abc for the module name flag. Once this is done, val processes the remaining file, in this case, s.xyz.
val generates diagnostic messages on standard output for each command line and file processed, and also returns a single 8-bit exit code as described below.
The effects of any argument apply independently to each named file on the command line. The arguments are defined as follows:
The 8-bit code returned by val is a disjunction of the possible errors, that is, it can be interpreted as a bit string where (moving from left to right) set bits are interpreted as follows:
bit 0 = missing file argument;
bit 1 = unknown or duplicate argument;
bit 2 = corrupted SCCS file;
bit 3 = cannot open file or file not SCCS;
bit 4 = SID is invalid or ambiguous;
bit 5 = SID does not exist;
bit 6 = %Y%, -y mismatch;
bit 7 = %M%, -m mismatch;
Note that val can process two or more files on a given command line and in turn can process multiple command lines (when reading standard input). In these cases an aggregate code is returned - a logical OR of the codes generated for each command line and file processed.
X/Open Portability Guide, Issue 3, 1989 .