mirror of
https://github.com/GnoConsortium/gno.git
synced 2025-01-02 23:31:56 +00:00
- changed nroff source to be of the style understood by GNO's nroff.
This commit is contained in:
parent
61adaadfbe
commit
320f77f2b4
@ -31,184 +31,169 @@
|
||||
.\"
|
||||
.\" @(#)ctags.1 8.1 (Berkeley) 6/6/93
|
||||
.\"
|
||||
.Dd June 6, 1993
|
||||
.Dt CTAGS 1
|
||||
.Os BSD 4
|
||||
.Sh NAME
|
||||
.Nm ctags
|
||||
.Nd create a tags file
|
||||
.Sh SYNOPSIS
|
||||
.Nm ctags
|
||||
.Op Fl BFadtuwvx
|
||||
.Op Fl f Ar tagsfile
|
||||
.Ar name ...
|
||||
.Sh DESCRIPTION
|
||||
.Nm Ctags
|
||||
.TH CTAGS 1 "October 1997" GNO "Commands and Applications"
|
||||
.SH NAME
|
||||
.BR ctags
|
||||
\- create a tags file
|
||||
.SH SYNOPSIS
|
||||
.BR ctags
|
||||
.RB [ -BFadtuwvx ]
|
||||
.RB [ -f
|
||||
.IR tagsfile ]
|
||||
.IR name ...
|
||||
.SH DESCRIPTION
|
||||
.BR Ctags
|
||||
makes a tags file for
|
||||
.Xr ex 1
|
||||
from the specified C,
|
||||
Pascal, Fortran,
|
||||
.Tn YACC ,
|
||||
lex, and lisp sources.
|
||||
.BR ex (1)
|
||||
from the specified C, Pascal, Fortran, YACC, lex, and lisp sources.
|
||||
A tags file gives the locations of specified objects in a group of files.
|
||||
Each line of the tags file contains the object name, the file in which it
|
||||
is defined, and a search pattern for the object definition, separated by
|
||||
white-space.
|
||||
Using the
|
||||
.Ar tags
|
||||
.BR tags
|
||||
file,
|
||||
.Xr ex 1
|
||||
.BR ex (1)
|
||||
can quickly locate these object definitions.
|
||||
Depending upon the options provided to
|
||||
.Nm ctags ,
|
||||
.BR ctags ,
|
||||
objects will consist of subroutines, typedefs, defines, structs,
|
||||
enums and unions.
|
||||
.Bl -tag -width Ds
|
||||
.It Fl B
|
||||
.IP "\fB-B\fR"
|
||||
use backward searching patterns
|
||||
.Pq Li ?...? .
|
||||
.It Fl F
|
||||
.RB ( "?...?" ).
|
||||
.IP "\fB-F\fR"
|
||||
use forward searching patterns
|
||||
.Pq Li /.../
|
||||
.RB ( "/.../" )
|
||||
(the default).
|
||||
.It Fl a
|
||||
.IP "\fB-a\fR"
|
||||
append to
|
||||
.Ar tags
|
||||
.BR tags
|
||||
file.
|
||||
.It Fl d
|
||||
create tags for
|
||||
.Li #defines
|
||||
that don't take arguments;
|
||||
.Li #defines
|
||||
.IP "\fB-d\fR"
|
||||
create tags for #defines that don't take arguments; #defines
|
||||
that take arguments are tagged automatically.
|
||||
.It Fl f
|
||||
.IP "\fB-f\fR"
|
||||
Places the tag descriptions in a file called
|
||||
.Ar tagsfile .
|
||||
.IR tagsfile .
|
||||
The default behaviour is to place them in a file called
|
||||
.Ar tags .
|
||||
.It Fl t
|
||||
.BR tags .
|
||||
.IP "\fB-t\fR"
|
||||
create tags for typedefs, structs, unions, and enums.
|
||||
.It Fl u
|
||||
.IP "\fB-u\fR"
|
||||
update the specified files in the
|
||||
.Ar tags
|
||||
.BR tags
|
||||
file, that is, all
|
||||
references to them are deleted, and the new values are appended to the
|
||||
file. (Beware: this option is implemented in a way which is rather
|
||||
slow; it is usually faster to simply rebuild the
|
||||
.Ar tags
|
||||
.BR tags
|
||||
file.)
|
||||
.It Fl v
|
||||
.IP "\fB-v\fR"
|
||||
An index of the form expected by
|
||||
.Xr vgrind 1
|
||||
.BR vgrind (1)
|
||||
is produced on the standard output. This listing
|
||||
contains the object name, file name, and page number (assuming 64
|
||||
line pages). Since the output will be sorted into lexicographic order,
|
||||
it may be desired to run the output through
|
||||
.Xr sort 1 .
|
||||
.BR sort (1).
|
||||
Sample use:
|
||||
.Bd -literal -offset indent
|
||||
ctags \-v files \&| sort \-f > index
|
||||
vgrind \-x index
|
||||
.Ed
|
||||
.It Fl w
|
||||
.nf
|
||||
|
||||
ctags \-v files \&| sort \-f > index
|
||||
vgrind \-x index
|
||||
.fi
|
||||
.IP "\fB-w\fR"
|
||||
suppress warning diagnostics.
|
||||
.It Fl x
|
||||
.Nm ctags
|
||||
.IP "\fB-x\fR"
|
||||
.BR ctags
|
||||
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.
|
||||
.El
|
||||
.Pp
|
||||
.LP
|
||||
Files whose names end in
|
||||
.Nm \&.c
|
||||
.BR \&.c
|
||||
or
|
||||
.Nm \&.h
|
||||
.BR \&.h
|
||||
are assumed to be C
|
||||
source files and are searched for C style routine and macro definitions.
|
||||
Files whose names end in
|
||||
.Nm \&.y
|
||||
are assumed to be
|
||||
.Tn YACC
|
||||
source files.
|
||||
.BR \&.y
|
||||
are assumed to be YACC source files.
|
||||
Files whose names end in
|
||||
.Nm \&.l
|
||||
.BR \&.l
|
||||
are assumed to be lisp files if their
|
||||
first non-blank character is `;', `(', or `[',
|
||||
otherwise, they are
|
||||
treated as lex files. Other files are first examined to see if they
|
||||
contain any Pascal or Fortran routine definitions, and, if not, are
|
||||
searched for C style definitions.
|
||||
.Pp
|
||||
.LP
|
||||
The tag
|
||||
.Li main
|
||||
.BR main
|
||||
is treated specially in C programs. The tag formed
|
||||
is created by prepending
|
||||
.Ar M
|
||||
.BR M
|
||||
to the name of the file, with the
|
||||
trailing
|
||||
.Nm \&.c
|
||||
.BR \&.c
|
||||
and any leading pathname components removed. This
|
||||
makes use of
|
||||
.Nm ctags
|
||||
.BR ctags
|
||||
practical in directories with more than one
|
||||
program.
|
||||
.Pp
|
||||
.LP
|
||||
Yacc and lex files each have a special tag.
|
||||
.Ar Yyparse
|
||||
.BR Yyparse
|
||||
is the start
|
||||
of the second section of the yacc file, and
|
||||
.Ar yylex
|
||||
.BR yylex
|
||||
is the start of
|
||||
the second section of the lex file.
|
||||
.Sh FILES
|
||||
.Bl -tag -width tags -compact
|
||||
.It Pa tags
|
||||
.SH FILES
|
||||
.IP "\fBtags\fR"
|
||||
default output tags file
|
||||
.El
|
||||
.Sh DIAGNOSTICS
|
||||
.Nm Ctags
|
||||
.SH DIAGNOSTICS
|
||||
.BR Ctags
|
||||
exits with a value of 1 if an error occurred, 0 otherwise.
|
||||
Duplicate objects are not considered errors.
|
||||
.Sh SEE ALSO
|
||||
.Xr ex 1 ,
|
||||
.Xr vi 1
|
||||
.Sh BUGS
|
||||
.SH ATTRIBUTIONS
|
||||
This command was ported from FreeBSD source code
|
||||
for distribution with GNO/ME 2.0.6.
|
||||
.SH SEE ALSO
|
||||
.BR ex (1),
|
||||
.BR vi (1)
|
||||
.SH BUGS
|
||||
Recognition of
|
||||
.Nm functions ,
|
||||
.Nm subroutines
|
||||
.BR functions ,
|
||||
.BR subroutines
|
||||
and
|
||||
.Nm procedures
|
||||
for
|
||||
.Tn FORTRAN
|
||||
.BR procedures
|
||||
for FORTRAN
|
||||
and Pascal is done is 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.
|
||||
.Nm Ctags
|
||||
.BR Ctags
|
||||
doesn't
|
||||
understand about Pascal types.
|
||||
.Pp
|
||||
The method of deciding whether to look for C, Pascal or
|
||||
.Tn FORTRAN
|
||||
.LP
|
||||
The method of deciding whether to look for C, Pascal or FORTRAN
|
||||
functions is a hack.
|
||||
.Pp
|
||||
.Nm Ctags
|
||||
.LP
|
||||
.BR Ctags
|
||||
relies on the input being well formed, and any syntactical
|
||||
errors will completely confuse it. It also finds some legal syntax
|
||||
confusing; for example, since it doesn't understand
|
||||
.Li #ifdef Ns 's
|
||||
confusing; for example, since it doesn't understand #ifdef's
|
||||
(incidentally, that's a feature, not a bug), any code with unbalanced
|
||||
braces inside
|
||||
.Li #ifdef Ns 's
|
||||
braces inside #ifdef's
|
||||
will cause it to become somewhat disoriented.
|
||||
In a similar fashion, multiple line changes within a definition will
|
||||
cause it to enter the last line of the object, rather than the first, as
|
||||
the searching pattern. The last line of multiple line
|
||||
.Li typedef Ns 's
|
||||
the searching pattern. The last line of multiple line typedef's
|
||||
will similarly be noted.
|
||||
.Sh HISTORY
|
||||
.SH HISTORY
|
||||
The
|
||||
.Nm
|
||||
command appeared in
|
||||
.Bx 3.0 .
|
||||
.BR Ctags
|
||||
command appeared in 3.0BSD.
|
||||
|
Loading…
Reference in New Issue
Block a user