


CTAGS(1)						 CTAGS(1)


NNAAMMEE
       ctags - Generates "tags" and (optionally) "refs" files

SSYYNNOOPPSSIISS
       ccttaaggss [--ssttvvrraa] _f_i_l_e_s_n_a_m_e_s...

DDEESSCCRRIIPPTTIIOONN
       _c_t_a_g_s  generates	the "tags" and "refs" files from a group
       of C source files.  The "tags"  file  is	used  by  Elvis'
       ":tag"  command,	control-]  command,  and -t option.  The
       "refs" file is sometimes used by the _r_e_f_(_1_) program.

       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  filenames  list  will typically be the names of all C
       source files in the current directory, like this:
	      $ ctags -stv *.[ch]

OOPPTTIIOONNSS
       --tt     Include typedefs.	A tag will be generated for each
	      user-defined type.  Also tags will be generated for
	      struct and enum names.  Types are considered to  be
	      global  if  they	are defined in a header file, and
	      static if they are defined in a C source file.

       --vv     Include variable declarations.  A tag will be  gen-
	      erated for each variable, except for those that are
	      declared inside the body of a function.

       --ss     Include  static  tags.   _C_t_a_g_s  will  normally  put
	      global tags in the "tags" file, and silently ignore
	      the static tags.	This flag causes both global  and
	      static  tags to be added.	The name of a static tag
	      is generated by prefixing the name of the	declared
	      item with the name of the file where it is defined,
	      with a colon  in	between.   For	example,  "static
	      foo(){}"	in   "bar.c"  results	in  a  tag  named
	      "bar.c:foo".

       --rr     This causes  _c_t_a_g_s  to  generate	both  "tags"  and
	      "refs".  Without --rr, it would only generate "tags".

       --aa     Append to	"tags",  and  maybe  "refs".	Normally,
	      _c_t_a_g_s  overwrites	these	files  each  time  it  is
	      invoked.	This flag is useful when you have to many
	      files in the current directory for you to list them



								1





CTAGS(1)						 CTAGS(1)


	      on a single command-line; it allows  you	to  split
	      the arguments among several invocations.

FFIILLEESS
       tags   A	cross-reference  that	lists  each tag name, the
	      name of the source file that contains it, and a way
	      to locate a particular line in the source file.

       refs   The  "refs"  file contains the definitions for each
	      tag in the "tags" file, and very little else.  This
	      file  can	be  useful,  for example, when licensing
	      restrictions prevent you	from  making  the  source
	      code  to	the standard C library readable by every-
	      body, but you still everybody to	know  what  argu-
	      ments the library functions need.

BBUUGGSS
       _c_t_a_g_s  is  sensitive to indenting and line breaks.  Conse-
       quently, it might not discover all of the tags in  a  file
       that is formatted in an unusual way.

SSEEEE AALLSSOO
       elvis(1), refs(1)

AAUUTTHHOORR
       Steve Kirkendall
       kirkenda@cs.pdx.edu






























								2


