The code is carefully segregated into a system independent portion and a system dependent portion. The system dependent code is in the `unix' subdirectory, and also in the file `sysh.unx' (also known as `sysdep.h').
With the right configuration parameters, the system independent code
calls only ANSI C functions. Some of the less common ANSI C functions
are also provided in the `lib' directory. The replacement function
strtol
in `lib/strtol.c' assumes that the characters A
to F and a to f appear in strictly sequential order.
The function igradecmp
in `uuconf/grdcmp.c' assumes that the
upper and lower case letters appear in order. Both assumptions are true
for ASCII and EBCDIC, but neither is guaranteed by ANSI C. Disregarding
these caveats, I believe that the system independent portion of the code
is strictly conforming.
That's not too exciting, since all the work is done in the system dependent code. I think that this code can conform to POSIX 1003.1, given the right compilation parameters. I'm a bit less certain about this, though.
The code has been used on a 16 bit segmented system with no function prototypes, so I'm fairly certain that all casts to long and pointers are done when necessary.
Go to the first, previous, next, last section, table of contents.