jordan@mddc.UUCP (08/15/83)
This version of NRO came from the C User's Group in Yates, Kansas. The I/O was changed to run under Unix V7 style I/O, and other than that, no modifications have been made to it. In the init() function, pg.lineno must be modified to suit your printer; it wants the line number the print head is on when you do a top of form. On my printer, the way I position the paper, it will start printing on the second line, so there is a value of 2 there. I would be interested in seeing any modifications anyone makes to this program in the way of extended capabilities, macro packages, and printer enhancements. If you have problems in the logic itself, you should contact the author. Happy Hacking, Jordan Bortz (..decvax!cbosgd!mddc!jordan) P.S. I tried compiling it on 4.1 BSD, and it didn't work. It works okay on my MS-DOS computer running Computer Innovations Ci C86, so there may be portability problems.
mark@cbosgd.UUCP (08/20/83)
re: On unix, (tolower) always subtracts a constant value from the argument and returns that value. People ought to be careful with words like "always", especially in conjunction with vague terms like "unix". In V7 and many of its descendents (e.g. 4BSD), tolower(c) reads #define tolower(c) ((c)-'A'+'a') It barfs on things that aren't upper case letters. In System III and many of its descendents, there is a macro _tolower defined like this, and a FUNCTION tolower that essentially does if (isupper(c)) return _tolower(c); else return c; In my opinion, the USG behavior is the better of the two. (You can argue about whether tolower should be a macro or function if you want.) However, it is not safe to assume that tolower does sanity checking.