Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!henry From: henry@utzoo.UUCP (Henry Spencer) Newsgroups: net.lang.c Subject: Re: Standardization questions (cpp mostly) Message-ID: <4427@utzoo.UUCP> Date: Sat, 6-Oct-84 18:47:54 EDT Article-I.D.: utzoo.4427 Posted: Sat Oct 6 18:47:54 1984 Date-Received: Sat, 6-Oct-84 18:47:54 EDT References: decvax.83, <1209@rti-sel.UUCP> Organization: U of Toronto Zoology Lines: 25 > We should return to the old days when vax was really 'vax', > unix was really 'unix', and small furry creatures were still single. > Here is a weak attempt at how it might be worded: > The effect of '#define foo foo' and also '-Dfoo' as an option > will be to make 'foo' defined and to evaluate to itself. > Subsequently, foo and defined(foo) will both evaluate to 1 > within a #if, foo will be considered defined within a #ifdef > or #ifndef, and foo will have no special meaning elsewhere. > > I am sure the Standards committee can figure something out, > so long as I can continue to use a variable named 'os' without > worrying about whether some compiler somewhere has already spoken for it. The committee has already made a partial step towards this. Section 9.2 of the 21 Aug 1984 draft: "If the macro name itself appears during the scanning, it is not replaced." In other words, "#define unix unix" will no longer send preprocessors into infinite recursive plunges, which is the reason why this convention was originally dropped. -- Henry Spencer @ U of Toronto Zoology {allegra,ihnp4,linus,decvax}!utzoo!henry