Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!watmath!clyde!bonnie!akgua!mcnc!decvax!wivax!cadmus!harvard!seismo!brl-tgr!tgr!geoff@utcs.uucp From: geoff@utcs.uucp Newsgroups: net.unix-wizards Subject: massive type confusion Message-ID: <6536@brl-tgr.ARPA> Date: Sun, 9-Dec-84 05:10:59 EST Article-I.D.: brl-tgr.6536 Posted: Sun Dec 9 05:10:59 1984 Date-Received: Thu, 13-Dec-84 01:54:28 EST Sender: news@brl-tgr.ARPA Organization: Ballistic Research Lab Lines: 27 Description: These files use int where long is correct and fail to use the types defined in. Repeat-By: Lint a type-correct program that calls lseek, time and ctime and which passes lint on v7 (not 4.1BSD, not 2BSD). Observe the utterly wrong and copious messages produced by lint. Fix: Edit llib-lc to use off_t instead of long where appropriate (hint: ftell must be declared as returning long). Edit to use ino_t (instead of unsigned long) and off_t where appropriate. Edit to typedef off_t and time_t as long, *not int*. Burn a new binary lint library for llib-lc. Use the types defined in in your programs! It is left as an exercise to the reader to make cc invoke lint before the C compiler and exit if lint complains. Flame: int is not long on all machines. I realise that the authors of 4.2BSD are too lazy to write type-correct code, but they could at least refrain from breaking existing, correct code such as . To paraphrase Dennis Ritchie, if you want BCPL, you know where to find it. In the mean time, please start writing *C* programs, you know the ones, they have *type* declarations in them.