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!burl!ulysses!allegra!mit-eddie!godot!harvard!seismo!brl-tgr!gwyn
From: gwyn@brl-tgr.ARPA (Doug Gwyn )
Newsgroups: net.lang.c
Subject: Re: Roff in C and iscntrl()
Message-ID: <6932@brl-tgr.ARPA>
Date: Thu, 3-Jan-85 03:10:34 EST
Article-I.D.: brl-tgr.6932
Posted: Thu Jan  3 03:10:34 1985
Date-Received: Sat, 5-Jan-85 02:09:34 EST
References: <1161@ut-ngp.UUCP>
Organization: Ballistic Research Lab
Lines: 14

> > iscntrl( c ) should return non-zero for c in
> > { 0, 1, ..., 036, 037, 0177 } and zero for c in
> > { 040, 041, ..., 0175, 0176 }.
> 
> If this is indeed correct, then the Portable C Compiler provided with
> 4.2bsd is guilty of a serious offence.

(Again, this is a matter of the C library, not of the compiler!)
I confirmed that the 4.2BSD iscntrl() ctype macro is broken in the way
previously described.  UNIX System V iscntrl() performs as I described
and as, apparently, the DeSmet C88 and CI-C86 C systems do.

I wonder how ANYone could have decided that e.g. LF is NOT a control
character?  (I'm sure the 4.2BSD fans will think that makes sense!)