doc/ja/man/man1/global.1
Jun Kuriyama 5c9fefcbd4 Catching up to 3.0-19990128-SNAP.
Reviewed by:	Japanese Online Manual Project <man-jp@jp.FreeBSD.ORG>
Submitted by:	Kazuo Horikawa <k-horik@yk.rim.or.jp>
1999-02-01 14:37:40 +00:00

193 lines
5.9 KiB
Groff

.\"
.\" Copyright (c) 1996, 1997, 1998 Shigio Yamaguchi. All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\" 3. All advertising materials mentioning features or use of this software
.\" must display the following acknowledgement:
.\" This product includes software developed by Shigio Yamaguchi.
.\" 4. Neither the name of the author nor the names of any co-contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\" jpman %Id: global.1,v 1.3 1997/07/27 12:54:52 horikawa Stab %
.\"
.Dd Dec 8, 1998
.Dt GLOBAL 1
.Os BSD 4
.Sh 名称
.Nm global
.Nd 指定したオブジェクトの位置を表示する
.Sh 書式
.Nm global
.Op Fl alnrtvx
.Ar pattern
.Nm global -c
.Op Ar prefix
.Nm global
.Fl f[anrtx]
.Ar files
.Nm global
.Fl g[alntvx]
.Ar pattern
.Nm global
.Fl i[v]
.Nm global
.Fl p
.Nm global
.Fl P[alnt]
.Op Ar pattern
.Nm global
.Fl s[alntvx]
.Ar pattern
.Sh 解説
.Nm
は C や Yacc や Java
のソースファイル中から特定のオブジェクトの位置を見つけ出します。
.Nm
は、ソースツリー(サブディレクトリやソースファイルを持つディレクトリ)も
扱うことができます。
ツリー内のどこにあろうと、オブジェクトの相対パスを得ることができます。
.Nm
は関数定義だけではなく、関数参照と他のシンボルの位置を把握します。
二重のエントリも取り扱うことができます。
.Pp
このコマンドを使う前に、ソースツリーのルートディレクトリで
.Xr gtags 1
を実行し、タグファイルを作成しなければなりません。
それから、
.Nm
をソースツリー下のいかなる場所からでも実行可能です。
.Sh コマンド
次のコマンドを使用可能です:
.Bl -tag -width Ds
.It Ar pattern
.Ar pattern
にマッチするパターンを表示します。POSIX 1003.2 の正規表現を使用可能です。
.It Fl c Op Ar prefix
指定された
.Ar prefix
で始まる名前の関数の候補を表示します。
.Ar prefix
が指定されない場合、すべての関数の名前を表示します。
.It Fl f Ar files
.Ar files
の全関数定義を表示します。このオプションは -x オプションを暗黙的に指定します。
.It Fl g Ar pattern
.Ar pattern
にマッチする全行を表示します。
grep(1) に似ています。
.It Fl i
タグファイルを探して、インクリメンタルに再構築します。
.It Fl p
GTAGS の位置を表示します。
.It Fl P Op Ar pattern
.Ar pattern
にマッチするパスを表示します。
パターンを指定しないと、すべてを表示します。
.It Fl s Ar pattern
関数名ではなく指定したシンボルの位置を表示します。
GSYMS タグファイルが必要です。
.Xr gtags 1
を参照してください。
.Sh オプション
次のオプションを使用可能です:
.Bl -tag -width Ds
.It Fl a
絶対パスで表示します。デフォルトでは相対パス名で表示します。
.It Fl l
現在のディレクトリ下に存在するオブジェクトを表示します。
.It Fl n
ソートフィルタとパス変換フィルタを抑制します。
.It Fl r
関数の参照場所を表示します。
デフォルトでは、関数の定義場所を表示します。
.It Fl t
標準の ctags フォーマットで表示します。
.It Fl x
デフォルトの出力に加えて、行番号と行の内容を表示します。
.Sh 関連ファイル
.Bl -tag -width tags -compact
.It Pa GTAGS
関数定義に関するタグファイル。
.It Pa GRTAGS
関数参照に関するタグファイル。
.It Pa GSYMS
関数以外のシンボルのタグファイル。
.It Pa GPATH
パスインデックス。インクリメンタル更新とコンパクトフォーマットで使用します。
.El
.Sh 環境変数
以下の環境変数が global の実行に影響します。
.Pp
.Bl -tag -width indent
.It Ev GTAGSROOT
ソースツリーのルートディレクトリです。
.It Ev GTAGSDBPATH
gtags のデータベースが存在するディレクトリです。
この値は GTAGSROOT が定義されていない場合は無視されます。
.It Ev GTAGSLIBPATH
この変数が設定されていると、ライブラリ関数を探すパスとして
用いられます。指定された関数がソースツリー内に見つからない場合、
global はこのパスも検索します。
.Sh 使用例
% 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)
% setenv GTAGSLIBPATH /usr/src/sys
% global strlen
../../../usr/src/sys/libkern/strlen.c
% (cd /usr/src/lib; gtags)
% setenv GTAGSLIBPATH /usr/src/lib:/usr/src/sys
% global strlen
../../../usr/src/lib/libc/string/strlen.c
.Sh 診断
.Nm
はエラーが発生すると 0 以外の値を、そうでなければ 0 を返します。
.Sh 関連項目
.Xr btreeop 1 ,
.Xr gtags 1 ,
.Xr htags 1 ,
.Xr vi 1 .
.Sh 作者
Shigio Yamaguchi (shigio@wafu.netgate.net)
.Sh 歴史
.Nm
コマンドは FreeBSD 2.2.2 で登場しました。