Exuberant Ctags =============== Author: Darren Hiebert (darren@hiwaay.net, http://fly.hiwaay.net/~darren) This source code is released into the public domain. It is provided on an as-is basis and no responsibility is accepted for its failure to perform as expected. It is worth at least as much as you paid for it! This is a reimplementation of the underused ctags(1) program and is intended to be the mother of all ctags programs 8^). I was motivated to write this because no currently available ctags program supported generation of tags for all possible tag candidates, and because most were easily fooled by a number of contructs. I am quite pleased with the result. It provides the following features: Able to generate tags for all of the following objects: - macro definitions - enumeration values (those inside enum{...}) - function definitions (and some C++ methods) - function prototypes (optional; intended for library header files) - enum, struct and union tags and C++ class names - typedefs - global variables Supports for both K&R style and new ANSI style function definitions. It is very robust in parsing C code and is extremely hard to fool, even with conditional preprocessor contructs. Which brings us to the most frequently asked question: Q: Why is it called "Exuberant" ctags? A: Because one of the meanings of the word is: exuberant : produced in extreme abundance : PLENTIFUL syn see PROFUSE Compare the tag file produced by Exuberant Ctags with that produced by any other ctags and you will see how appropriate the name is. Official "Exuberant Ctags" Web site: http://fly.hiwaay.net/~darren/ctags Exuberant Ctags was originally derived from and inspired by the ctags program by Steve Kirkendall (kirkenda@cs.pdx.edu) that comes with the Elvis vi clone (though almost none of the original code remains). This, too, is freely available. Please report any problems you find. The two problems I expect to be most likely are either a tag which you expected but is missing, or a tag created in error (shouldn't really be a tag). Please include a sample of code (the definition) for the object which misbehaves.
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.