Ctags is a program which which generates a "tags" file from a collection of
C source files.  It can also generate a "refs" file.

The "tags" file is used by Elvis' ":tag" command, control-] command, and its
-t option.  Each C source file is scanned for #define statements and global
function definitions.  The name of the macro or function becomes the name of
a tag.  For each tag, a line is added to the "tags" file which contains:
	- the name of the tag
	- a tab character
	- the name of the file containing the tag
	- a tab character
	- a way to find the particular line within the file.

The "refs" file is used by the "ref" program, which can be invoked via Elvis'
K command.  When ctags finds a global function definition, it copies the
function header into the "refs" file.  The first line is flush against the
right margin, but the argument definitions are indented.  The ref program can
search the "refs" file *much* faster than it could search all of the C source
files.

The invocation signature of ctags is:

	ctags [-r] filenames...

The -r flag tells it to generate both "tags" and "refs"; without -r, ctags
will only generate a "tags" file.

The filenames list will typically be the names of all C source files in the
current directory, like this:

	$ ctags -r *.c *.h

If there are too many C source files in the current directory, you may have
to split the list in half.  For example, in /usr/src/lib you might say:

	$ ctags -r [a-i]*.c
	$ mv refs airefs
	$ mv tags aitags
	$ ctags -r [j-z]*.c
	$ cat airefs >>refs
	$ cat aitags >>tags
	$ rm airefs aitags
