Exuberant Ctags
===============
Author: Darren Hiebert (darren@sirsi.com, 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.

It is 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, was 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.
