Newsgroups: comp.unix.questions Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!umich!csmil.umich.edu!zurich.csmil.umich.edu!holtz From: holtz@zurich.csmil.umich.edu (Brian Holtz) Subject: Re: tag files for preprocessor macros? Message-ID: <1990Feb19.012423.19383@csmil.umich.edu> Sender: news@csmil.umich.edu Organization: The Cognitive Science and Machine Intelligence Laboratory References: <1345@zipeecs.umich.edu> <369@charyb.COM> Date: Mon, 19 Feb 90 01:24:23 GMT In article <369@charyb.COM> dan@charyb.UUCP (Dan Mick) writes: >In article <1345@zipeecs.umich.edu> brian@dip.eecs.umich.edu (Brian Holtz) writes: >>Is there a tool like ctags or etags that also generates tags for >>preprocessor-#define'd symbols and macros? > >Eh? My ctags does. As a matter of fact, the third paragraph of the man >page states that explicitly. Have you R'ed TFM? Yep, and the etags source, too. Neither ctags nor etags generates tags for simple preprocessor definitions or even argument-less preprocessor macros. Also, neither generates tags for macros defined when any curly braces are open, which is a lot of places in, say, the X11 include files, with their ifdef'd-out support for C++: #ifdef __cplusplus extern "C" { #endif /* ... file-full of stuff ... */ #ifdef __cplusplus } #endif In etags, at least, the reason for this is that macros are tagged only when they occur in places that a regular function could. Now, I can understand ifdef'd braces fooling you about functions, since you don't want to preprocess the file just to get tags out, but preprocessor definitions are a separate matter altogether. Anyone with a higher tolerance for rats' nests of goto's than I have is welcome to modify gnu etags and fix the problem.