Path: utzoo!attcan!uunet!peregrine!elroy!ames!ucsd!rutgers!ucla-cs!admin.cognet.ucla.edu!casey From: casey@admin.cognet.ucla.edu (Casey Leedom) Newsgroups: comp.sys.apollo Subject: Re: Internal cpp in /usr/lib/cc != /usr/lib/cpp Keywords: old cpp, ANSI cpp, expanding macro arguments in strings, MH6.5 Message-ID: <15460@shemp.CS.UCLA.EDU> Date: 24 Aug 88 17:11:55 GMT References: <15428@shemp.CS.UCLA.EDU> <8808240139.AA02024@OLIVER.MIT.EDU> Sender: news@CS.UCLA.EDU Reply-To: casey@cs.ucla.edu (Casey Leedom) Organization: UCLA Lines: 22 In article <8808240139.AA02024@OLIVER.MIT.EDU> wesommer@ATHENA.MIT.EDU (Bill Sommerfeld) writes: | | The `Reiser' cpp (/usr/lib/cpp or /lib/cpp) happens to expand macros and | macro arguments inside quoted strings, but this is not something which | can be depended upon. The draft proposed ANSI C standard, which is | (partially) implemented by /com/cc, specifies that the preprocessor | should NOT expand macros or macro arguments inside quoted strings. | | To have source which will work with all C compilers, change the macro | to: | | #define grot(x) case x: *dp++ = x; break; | | and all invocations of it to: | | grot('n') Thanks for your note Bill. Your solution is wrong however. There is in fact no way to implement the MH macro in the preprocessor you describe. Yet another step backwards for an already underpowered macro processor. Casey