'\"macro stdmacro
.if n .pH g1.pstags @(#)pstags	40.2 of 12/29/89
.\" @(#)pstags.1 1.13 89/06/22 SMI;
.nr X
.if \nX=0 .ds x} PSTAGS 1 "9 Mar 1989" "\&"
.if \nX=1 .ds x} PSTAGS 1 "9 Mar 1989"
.if \nX=2 .ds x} PSTAGS 1 "" "\&"
.if \nX=3 .ds x} PSTAGS "" "" "\&"
.TH \*(x}
.ds Ps P\s-2OST\s+2S\s-2CRIPT\s+2
.ds Sd \s-2Ne\h'-0.2n'WS\s+2
.ds Xn X11/Ne\h'-0.2n'WS
.IX pstags#(1) "" "\fLpstags\fP(1)"
.SH NAME
pstags \- create a \*(Ps language or \*(Sd tags file for use with 
\fBvi\fP
.SH SYNOPSIS
.B pstags
[
.B \-f
.I tagsfile
]
[
.I files
]
.SH DESCRIPTION
.B pstags
makes a tags file for
.BR ex (1)
from a \*(Ps language or \*(Sd source file. See
.BR ctags (1) 
for more information.
.B pstags
tags lines with the string 
.B cdef
and lines with the hint
.BI "pstag\=\<"tagname "\> "
embedded anywhere in a comment.
.LP
The default tagfile is
.B tags.ps.
Because this is not in the default tag search path, the command
.TP
.ne
.RS
.ft B
set tags=tags tags.ps
.ft R
.RE
.LP
is required in
.BR vi (1),
or in the user's   
.B .exrc
file to initialize that path. Depending on the system, a backslash may be required to escape the space between
.B tags
and
.B tags.ps\fP.
.SH OPTIONS
.TP
None.
.SH EXAMPLES
Using
.B pstags
on a file containing the function definition
.sp .5
.RS
.BI "cdef " function_name "(int " arg") "
.RE
.LP
produces the tag 
.I function_name.
.LP
Inserting the comment:
.sp .5
.RS
.BI "/ " name "\ { % " object\ =>\ - \	
.BI "pstag\=\<"name "\> " 
.RE
.LP
in the source file yields the tag 
.I name
for that line. Note that it is the string within the 
.B <...>
that is used as the tag.
.SH FILES
.PD 0
.TP 20
.B tags.ps
output tags file
.PD
.BR
.SH SEE ALSO
.BR ctags (1),
.BR ex (1),
.BR psindent (1),
.BR vgrind (1),
.BR vi (1)
.SH BUGS
Should be able to identify the tags without the hint in the comment.
.SH AUTHOR
Josh Siegel (siegel@hc.dspo.gov)
