Path: utzoo!mnetor!uunet!husc6!think!bloom-beacon!gatech!ulysses!hector!jss From: jss@hector.UUCP (Jerry Schwarz) Newsgroups: comp.lang.c Subject: Re: Macro parameters getting substituted into strings Message-ID: <10194@ulysses.homer.nj.att.com> Date: 29 Mar 88 20:04:52 GMT References: <11879@brl-adm.ARPA> <4099@hoptoad.uucp> <7309@brl-smoke.ARPA> <983@mcgill-vision.UUCP> <4253@hoptoad.uucp> Sender: netnews@ulysses.homer.nj.att.com Reply-To: jss@hector (Jerry Schwarz) Organization: AT&T Bell Labs, Murray Hill Lines: 22 In article <4253@hoptoad.uucp> gnu@hoptoad.uucp (John Gilmore) writes: > >In the BSD sources, Keith Bostic and I had to change more than 50 files >to deal with this. The CPP on my binary A/UX, supposedly a System V, >replaces macro parameters inside strings. I would like someone who has >System V sources to grep the sources for the CTRL macro -- I bet you >will find it there, using this technique. If it's there, this ANSI >change is a "Quiet Change" to the compilers of both major Unix variants >(effectively, to ALL Unix implementations) and breaks dozens of the >application programs in both variants. Can you say "Codifying existing >practice", boyz and goils? Once again. The adoption of the standard will not break anything. New compilers will break things. But compiler vendors can support compatibility modes for as long as they choose. I grepped some old Sys V source. The abominable CTRL occured 62 times all but 6 of them in vi. Yes it is a quiet change. The Rationale notes the quiet change that substitution does not occur in strings. It doesn't mention character constants. I don't know why.