unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (SunOS-5.10)
Page:
Section:
Apropos / Subsearch:
optional field

ctags(1)                         User Commands                        ctags(1)



NAME
       ctags - create a tags file for use with ex and vi

SYNOPSIS
       /usr/bin/ctags [-aBFtuvwx] [-f tagsfile] file...

       /usr/xpg4/bin/ctags [-aBFuvwx] [-f tagsfile] file...

DESCRIPTION
       The  ctags  utility  makes  a tags file for ex(1) from the specified C,
       C++, Pascal, FORTRAN, yacc(1), and  lex(1) sources. A tags  file  gives
       the  locations  of  specified objects (in this case functions and type-
       defs) in a group of files.  Each line of the  tags  file  contains  the
       object name, the file in which it is defined, and an address specifica-
       tion for the object definition. Functions are searched with a  pattern,
       typedefs with a line number. Specifiers are given in separate fields on
       the line, separated by <&lt;SPACE>&gt; or  <&lt;TAB>&gt;  characters.  Using  the  tags
       file, ex can quickly find these objects' definitions.

       Normally,   ctags  places  the  tag descriptions in a file called tags;
       this may be overridden with the -f option.

       Files with names ending in  .c or .h are assumed to be either C or  C++
       source files and are searched for C/C++  routine and macro definitions.
       Files with names ending in .cc, .C, or  .cxx, are  assumed  to  be  C++
       source  files.  Files  with  names ending in .y are assumed to be  yacc
       source files. Files with names ending in .l  are  assumed  to  be   lex
       files.   Others are first examined to see if they contain any Pascal or
       FORTRAN routine definitions; if not, they are processed  again  looking
       for C  definitions.

       The tag main is treated specially in C or C++ programs.  The tag formed
       is created by prepending M to file, with a trailing  .c ,  .cc  .C,  or
       .cxx  removed,  if  any, and leading path name components also removed.
       This makes use of ctags practical in directories  with  more  than  one
       program.

OPTIONS
       The  precedence of the options that pertain to printing is -x, -v, then
       the remaining options. The following options are supported:

       -a              Appends output to an existing tags file.



       -B              Uses backward searching patterns (?...?).



       -f tagsfile     Places the tag descriptions in a file  called  tagsfile
                       instead of tags.



       -F              Uses forward searching patterns (/.../) (default).



       -t              Creates  tags for typedefs. /usr/xpg4/bin/ctags creates
                       tags for typedefs by default.



       -u              Updates the specified files in tags, that is, all  ref-
                       erences  to  them  are  deleted, and the new values are
                       appended to the file. Beware:  this  option  is  imple-
                       mented  in  a  way  that  is rather slow; it is usually
                       faster to simply rebuild the tags file.



       -v              Produces on the standard output an  index  listing  the
                       function  name, file name, and page number (assuming 64
                       line pages). Since the output will be sorted into lexi-
                       cographic  order,  it  may be desired to run the output
                       through sort -f.



       -w              Suppresses warning diagnostics.



       -x              Produces a list of object names, the  line  number  and
                       file name on which each is defined, as well as the text
                       of that line and prints this on  the  standard  output.
                       This  is  a simple index which can be printed out as an
                       off-line readable function index.



OPERANDS
       The following file operands are supported:

       file.c          Files with basenames ending  with  the  .c  suffix  are
                       treated as C-language source code.



       file.h          Files  with  basenames  ending  with  the .h suffix are
                       treated as C-language source code.



       file.f          Files with basenames ending  with  the  .f  suffix  are
                       treated as FORTRAN-language source code.



USAGE
       The  -v  option  is  mainly  used with vgrind which will be part of the
       optional BSD Compatibility Package.

EXAMPLES
       Example 1: Producing entries in alphabetical order

       Using ctags with the -v option produces entries in an order  which  may
       not  always be appropriate for vgrind. To produce results in alphabeti-
       cal order, you may want to run the output through sort -f.

       example% ctags -v filename.c filename.h | sort -f >&gt; index
       example% vgrind -x index

       Example 2: Building a tags file

       To build a tags file for C sources in a directory hierarchy  rooted  at
       sourcedir, first create an empty tags file, and then run  find(1)

       example% cd sourcedir  ; rm -f tags ; touch tags
       example% find . \( -name SCCS -prune -name \\
              '*.c' -o -name '*.h' \) -exec ctags -u {} \;

       Notice that spaces must be entered exactly as shown.

ENVIRONMENT VARIABLES
       See  environ(5) for descriptions of the following environment variables
       that affect the execution of ctags: LANG, LC_ALL, LC_COLLATE, LC_CTYPE,
       LC_MESSAGES, and NLSPATH.

EXIT STATUS
       The following exit values are returned:

       0               Successful completion.



       >&gt;0              An error occurred.



FILES
       tags            output tags file



ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

   /usr/bin/ctags
       tab()     allbox;     cw(2.750000i)|    cw(2.750000i)    lw(2.750000i)|
       lw(2.750000i).  ATTRIBUTE TYPEATTRIBUTE VALUE AvailabilitySUNWtoo


   /usr/xpg4/bin/ctags
       tab()    allbox;    cw(2.750000i)|     cw(2.750000i)     lw(2.750000i)|
       lw(2.750000i).    ATTRIBUTE  TYPEATTRIBUTE  VALUE  AvailabilitySUNWxcu4
       Interface StabilityStandard


SEE ALSO
       ex(1), lex(1), vgrind(1), vi(1),  yacc(1),  attributes(5),  environ(5),
       standards(5)

NOTES
       Recognition  of  functions, subroutines, and procedures for FORTRAN and
       Pascal is done in a very simpleminded way. No attempt is made  to  deal
       with  block  structure;  if you have two Pascal procedures in different
       blocks with the same name, you lose.

       The method of deciding whether to look for  C  or  Pascal  and  FORTRAN
       functions is a hack.

       The ctags utility does not know about #ifdefs.

       The  ctags  utility should know about Pascal types. Relies on the input
       being well formed to detect typedefs. Use of -tx shows  only  the  last
       line of typedefs.



SunOS 5.10                        18 Mar 1997                         ctags(1)