It was using getlong(), which caused values larger than LONG_MAX to be
truncated to LONG_MAX.
As recommended by 1003.2, print warning messages when argument cannot be
converted to value or is out of range.
Use macro constants for "skip1" and "skip2" instead of assigning them
each loop iteration.
Reformat the multi-case entries in the "big switch" so the lines don't wrap.
* Escape characters in the string needed to be processed as they were
encountered, otherwise a "\000" octal constant would prematurely
terminate the formatting string.
* Implemented the %b, SysV echo(1) compatibility, formatting directive.