89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH REF 1
 | 
						|
.SH NAME
 | 
						|
ref - Display a C function header
 | 
						|
.SH SYNOPSIS
 | 
						|
\fBref\fR [-t] [-c \fIclass\fR]... [-f \fIfile\fR]... \fItag\fR
 | 
						|
.SH DESCRIPTION
 | 
						|
\fIref\fP quickly locates and displays the header of a function.
 | 
						|
To do this, \fIref\fR
 | 
						|
looks in the "tags" file for the line that describes the function, and then 
 | 
						|
scans the source file for the function.
 | 
						|
When it locates the function, it displays an introductory comment
 | 
						|
(if there is one), the function's declaration, and the declarations of all
 | 
						|
arguments.
 | 
						|
.SH "SEARCH METHOD"
 | 
						|
.PP
 | 
						|
\fIref\fR uses a fairly sophisticated tag look-up algorithm.
 | 
						|
If you supply a filename via \fB-f\fR \fIfile\fR, then elvis first scans
 | 
						|
the tags file for a static tag from that file.
 | 
						|
This search is limited to the tags file in the current directory.
 | 
						|
.PP
 | 
						|
If you supply a classname via \fB-c\fR \fIclass\fR, then elvis searches
 | 
						|
for a tag from that class.
 | 
						|
This search is not limited to the current directory;
 | 
						|
You can supply a list of directories in the environment variable \fITAGPATH\fR,
 | 
						|
and \fIref\fR will search through the "tags" file in each directory until it finds
 | 
						|
a tag in the desired class.
 | 
						|
.PP
 | 
						|
If that fails, \fIref\fR will then try to look up an ordinary global tag.
 | 
						|
This search checks all of the directories listed in \fITAGPATH\fR, too.
 | 
						|
.PP
 | 
						|
If you've given the \fB-t\fR flag, then \fIref\fR will simply output the tag line that
 | 
						|
it found, and then exit.
 | 
						|
Without \fB-t\fR, though, \fIref\fR will search for the tag line.
 | 
						|
It will try to open the source file, which should be in the same directory
 | 
						|
as the tags file where the tag was discovered.
 | 
						|
If the source file doesn't exist, or is unreadable, then \fIref\fR will try to open
 | 
						|
a file called "\fIrefs\fR" in that directory.
 | 
						|
Either way, \fIref\fR will try to locate the tag, and display whatever it finds.
 | 
						|
.SH "INTERACTION WITH ELVIS"
 | 
						|
.PP
 | 
						|
\fIref\fP is used by \fIelvis\fR' shift-K command.
 | 
						|
If the cursor is located on a word such as "splat", in the file "foo.c",
 | 
						|
then \fIelvis\fR will invoke \fIref\fR with the command "ref -f foo.c splat".
 | 
						|
.PP
 | 
						|
If \fIelvis\fR has been compiled with the -DEXTERNAL_TAGS flag, then \fIelvis\fR will
 | 
						|
use \fIref\fR \fB\fRto scan the tags files.
 | 
						|
This is slower than the built-in tag searching, but it allows \fIelvis\fR to access
 | 
						|
the more sophisticated tag lookup provided by \fIref\fR.
 | 
						|
Other than that, external tags should act exactly like internal tags.
 | 
						|
.SH OPTIONS
 | 
						|
.IP \fB-t\fR
 | 
						|
Output tag info, instead of the function header.
 | 
						|
.IP "\fB-f\fR \fIfile\fR"
 | 
						|
The tag might be a static function in \fIfile\fR.
 | 
						|
You can use several -f flags to have \fIref\fR consider static tags from more than one file.
 | 
						|
.IP "\fB-c\fR \fIclass\fR"
 | 
						|
The tag might be a member of class \fIclass\fR.
 | 
						|
You can use several -c flags to have \fIref\fR consider tags from more than one class.
 | 
						|
.SH FILES
 | 
						|
.IP \fBtags\fR
 | 
						|
List of function names and their locations, generated by \fIctags\fR.
 | 
						|
.IP \fBrefs\fR
 | 
						|
Function headers extracted from source files (optional).
 | 
						|
.SH ENVIRONMENT
 | 
						|
.IP \fBTAGPATH\fR
 | 
						|
List of directories to be searched.
 | 
						|
The elements in the list are separated by either
 | 
						|
semicolons (for MS-DOS, Atari TOS, and AmigaDos), or
 | 
						|
by colons (every other operating system).
 | 
						|
For each operating system, \fIref\fR has a built-in default which is probably
 | 
						|
adequate.
 | 
						|
.SH NOTES
 | 
						|
.PP
 | 
						|
You might want to generate a "tags" file the directory that contains the
 | 
						|
source code for standard C library on your system.
 | 
						|
If licensing restrictions prevent you from making the library source readable
 | 
						|
by everybody, then you can have \fIctags\fR generate a "refs" file,
 | 
						|
and make "refs" readable by everybody.
 | 
						|
.PP
 | 
						|
If your system doesn't come with the library source code, then perhaps you
 | 
						|
can produce something workable from the \fIlint\fR libraries.
 | 
						|
.SH "SEE ALSO"
 | 
						|
elvis(1), ctags(1)
 | 
						|
.SH AUTHOR
 | 
						|
.nf
 | 
						|
Steve Kirkendall
 | 
						|
kirkenda@cs.pdx.edu
 | 
						|
.fi
 |