On Wed, 2008-08-06 at 22:34 -0700, Skunk Worx wrote: > Matthew Saltzman wrote: > > On Tue, 2008-08-05 at 19:49 -0700, Skunk Worx wrote: > >> $ gcc foo.c > >> foo.c:1:16: warning: missing terminating " character > >> > >> $ cat foo.c > >> #define DQUOTE " > >> main() {} > >> > >> A few people at work have mentioned it seems unusual for a preprocessor > >> to complain about simple macros this way. > >> > >> What do others think of this? > > > > A macro definition has to consist of a sequence of tokens. A string > > constant (sequence of characters enclosed in double quotes) is a token, > > but the double quote by itself is not. > > > > If you are trying to construct strings containing macro defs, look at > > the stringize operator (#) and token merge operator (##)in the > > preprocessor documentation. > > > > Exactly. This code was written circa 1991 and the warnings came with the > change to Fedora 9. > > The preprocessor is being used to generate html code documentation in > the build, including named anchors (#). > > A further review of K&R, and other sources on the web, show the use of > the preprocessor for this kind of task is not recommended. I imagine it would be some effort to integrate in legacy code, but if I understand what you're trying to do, it sounds like Doxygen might do what you want. There are other, similar systems out there as well. They generally use formatted comments and a separate processor to generate documentation in various formats. > > Thanks, > John > > -- Matthew Saltzman Clemson University Math Sciences mjs AT clemson DOT edu http://www.math.clemson.edu/~mjs -- fedora-list mailing list fedora-list@xxxxxxxxxx To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list