@c This file is generated automatically by convert.pl from global/manual.in.
@unnumberedsubsec NAME
global - print the locations of specified object.
@unnumberedsubsec SYNOPSIS
@noindent
@quotation
global [-aGilnqrstTvx][-e] pattern@*
global -c[qrsv] prefix@*
global -f[anqrstvx] files@*
global -g[aGilnoOqtvx][-e] pattern@*
global -I[ailnqtvx][-e] pattern@*
global -P[aGilnoOqtvx][-e] pattern@*
global -p[qrv]@*
global -u[qv]@*
@end quotation
@unnumberedsubsec DESCRIPTION
Global find the locations of specified object
in C, C++, Yacc, Java, PHP and Assembly source files.
Global can treat a source tree, that is, a directory that
has sub-directories and source files as a project.
You can get the relative path of objects from anywhere within the project.
Global can locate not only object definitions but also object
references and other symbols.

In advance of using this command, you must execute gtags(1)
at the root directory of the project to make tag files.
Then you can execute this command at anywhere in the project.
@unnumberedsubsec COMMANDS
The following commands are available:
@table @asis
@item <no command> pattern
Print object which match to the pattern.
Extended regular expressions which are the same as those
accepted by egrep(1) are available.
@item @samp{-c}, @samp{--completion} [prefix]
Print the candidates of object names which start with the specified
prefix. Prefix is not specified,
print all object names.
@item @samp{-f}, @samp{--file} files
Print all tags in the files.
This option implies the -x option.
@item @samp{-g}, @samp{--grep} pattern
Print all lines which match to the pattern.
@item @samp{--help}
Show help.
@item @samp{-I}, @samp{--idutils} pattern
Print all lines which match to the pattern.
This function use idutils(1) as a search engine.
To use this command, you need to install idutils(1)
in your system and you must execute gtags(1)
with the @samp{-I} option.
@item @samp{-P}, @samp{--path} [pattern]
Print the paths which match to the pattern.
If no pattern specified, print all paths in the project.
@item @samp{-p}, @samp{--print-dbpath}
Print the location of @file{GTAGS}.
@item @samp{-u}, @samp{--update}
Locate tag files and update them incrementally.
@item @samp{--version}
Show version number.
@end table
@unnumberedsubsec OPTIONS
The following options are available:
@table @asis
@item @samp{-a}, @samp{--absolute}
Print absolute path name. By default, print relative path name.
@item @samp{--from-here} context
Decide tag type by the context. The context must be 'lineno:path'.
If this option is specified then the @samp{-s} and @samp{-r}
are ignored.
Regular expression is not allowed in the pattern.
This option is assumes use in conversational environments such as
editors and IDEs.
@item @samp{-e}, @samp{--regexp} pattern
Use pattern as the pattern; useful to protect  patterns
beginning with @file{-}.
@item @samp{-G}, @samp{--basic-regexp}
Interpret pattern as a  basic regular expression.
The default is extended regular expression.
@item @samp{-i}, @samp{--ignore-case}
ignore case distinctions in pattern.
@item @samp{-l}, @samp{--local}
Print just objects which exist under the current directory.
@item @samp{-n}, @samp{--nofilter}
Suppress sort filter and path conversion filter.
@item @samp{-O}, @samp{--only-other}
Search pattern only in other than source files like @file{README}.
This option is valid only with @samp{-g} or @samp{-P} command.
This option override the @samp{-o} option.
@item @samp{-o}, @samp{--other}
Search pattern in not only source files but also other files
like @file{README}.
This option is valid only with @samp{-g} or @samp{-P} command.
@item @samp{-q}, @samp{--quiet}
Quiet mode.
@item @samp{-r}, @samp{--reference}, @samp{--rootdir}
Print the locations of object references.
By default, print object definitions.
With the @samp{-p} option, print the root directory of source tree.
@item @samp{--result} format
format may be 'path', `ctags', `ctags-x', `grep' or 'cscope'.
The @samp{--result=ctags} and @samp{--result=ctags-x} are
equivalent to the @samp{-t} and @samp{-x} respectively.
The @samp{--result} option is given to priority more than the -t and -x option.
@item @samp{-s}, @samp{--symbol}
Print the locations of specified symbol other than definitions.
@item @samp{-T}, @samp{--through}
Go through all the tag files listed in @var{GTAGSLIBPATH}.
By default, stop searching when tag is found.
This option is ignored when either @samp{-s}, @samp{-r}
or @samp{-l} option is specified.
@item @samp{-t}, @samp{--tags}
Print with standard ctags format.
@item @samp{-v}, @samp{--verbose}
Verbose mode.
@item @samp{-x}, @samp{--cxref}
In addition to the default output, produce the line number and
the line contents.
@end table
@unnumberedsubsec EXAMPLES
@example
	$ ls -F
	Makefile      src/    lib/
	$ gtags
	$ global main
	src/main.c
	$ global -x main
	main              10 src/main.c  main (argc, argv) @{
	$ global -x '^[sg]et'
	set_num           20 lib/util.c  set_num(values)
	get_num           30 lib/util.c  get_num() @{
	$ global -rx '^[sg]et'
	set_num          113 src/op.c            set_num(32);
	set_num          225 src/opop.c               if (set_num(0) > 0) @{
	get_num           90 src/op.c            while (get_num() > 0) @{
	$ cd lib
	$ global -rx '^[sg]et'
	set_num          113 ../src/op.c            set_num(32);
	set_num          225 ../src/opop.c               if (set_num(0) > 0) @{
	get_num           90 ../src/op.c            while (get_num() > 0) @{
	$ global strlen
	$ (cd /usr/src/sys; gtags)
	$ export GTAGSLIBPATH=/usr/src/sys
	$ global strlen
	../../../usr/src/sys/libkern/strlen.c
	$ (cd /usr/src/lib; gtags)
	$ GTAGSLIBPATH=/usr/src/lib:/usr/src/sys
	$ global strlen
	../../../usr/src/lib/libc/string/strlen.c
@end example
@unnumberedsubsec FILES
@table @asis
@item @file{GTAGS}
Tag file for object definitions.
@item @file{GRTAGS}
Tag file for object references.
@item @file{GSYMS}
Tag file for other symbols.
@item @file{GPATH}
Tag file for path of source files.
@item @file{GTAGSROOT}
If environment variable @var{GTAGSROOT} is not set and @file{GTAGSROOT} exist
in the same directory with @file{GTAGS} then use the value
as @var{GTAGSROOT}.
@item @file{/etc/gtags.conf}, @file{$HOME/.globalrc}
Configuration file.
@end table
@unnumberedsubsec ENVIRONMENT
The following environment variables affect the execution of global:
@table @asis
@item @var{GTAGSROOT}
The directory which is the root of source code.
@item @var{GTAGSDBPATH}
The directory on which gtags database exist.
This value is ignored when @var{GTAGSROOT} is not defined.
@item @var{GTAGSLIBPATH}
If this variable is set, it is used as the path to search
for library functions. If the specified function is not
found in the source project, global also search in these paths.
@item @var{GTAGSLABEL}
If this variable is set, its value is used as the label
of configuration file. The default is @code{default}.
@item @var{MAKEOBJDIRPREFIX}
If this variable is set, @file{$MAKEOBJDIRPREFIX<current directory>}
is used as the candidate directory for tag files.
@end table
@unnumberedsubsec CONFIGURATION
The following configuration variables affect the execution of global:
@table @asis
@item @code{icase_path}(boolean)
Ignore case distinctions in the pattern.
@end table
@unnumberedsubsec DIAGNOSTICS
Global exits with a non 0 value if an error occurred, 0 otherwise.
@unnumberedsubsec SEE ALSO
gtags-parser(1),
gtags(1),
htags(1),
less(1).

GNU GLOBAL source code tag system@*
(http://www.gnu.org/software/global/).
@unnumberedsubsec AUTHOR
Tama Communications Corporation.
@unnumberedsubsec HISTORY
The global command appeared in FreeBSD 2.2.2.
