tag files for preprocessor macros?

Brian Holtz holtz at zurich.csmil.umich.edu
Mon Feb 19 12:24:23 AEST 1990


In article <369 at charyb.COM> dan at charyb.UUCP (Dan Mick) writes:
>In article <1345 at zipeecs.umich.edu> brian at 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.



More information about the Comp.unix.questions mailing list