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