___________________________________
|      |  |  |     |  _  |     |  |
|  |___|  |  |  |  |    _|  |  |  |    GNU GLOBAL source code tag system
|  |   |  |  |  |  |     |     |  |
|  ~~  |   ~~|     |  ~  |  |  |   ~~|          for all hackers.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 Copyright (c) 2000
        Tama Communications Corporation. All rights reserved.

 This file is free software; as a special exception the author gives
 unlimited permission to copy and/or distribute it, with or without
 modifications, as long as this notice is preserved.

 This program is distributed in the hope that it will be useful, but
 WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

		----------------------------------

Frequentry Asked Questions about GLOBAL.

----------------------------------------------------------------------------
Q1. Htags(1) aborts by short of memory. Why? Any workaround?

	% htags
	Out of memory!
	% _

A1. It seems that Perl4 and some Perl5 leaks memory.
    Please replace it with the latest Perl(currently 5.6.0) and retry.

    If it occurs with Perl-5.6.0 or later, please let me know.
----------------------------------------------------------------------------
Q2. GLOBAL skip some functions.
    For example, GLOBAL skip the function 'func' in this example.

	#define M(a)	static char *string = a;

	M(a)

	func() {		<= GLOBAL skip func().
		...
	}

A2. GLOBAL cannot recognize that pattern, because M(a) seems to be
    a function definition.

    It should be follows.

	#define M(a)	static char *string = a

	M(a);			<= end with ';'

	func() {
		...
	}

    Otherwise, you can tell gtags(1) that by listing the macros in
    '.notfunction' file in current directory.

	[.notfunction]
	+---------------
	|M
	|...

----------------------------------------------------------------------------
Q3. I have set up 'gtags.conf' to use emacs's ctags command with GLOBAL
    but I cannot use htags.

	% gtags
	% htags
	htags: GTAGS and GRTAGS not found. Please make them.
	% ls G*
	GPATH   GTAGS

A3. Emacs's ctags cannot locate function referencies. So, gtags cannot make
    GRTAGS tag file with it. With the result that you cannot use htags and
    global's -r option.

----------------------------------------------------------------------------
Q4. I have built GLOBAL in Windows 32 environment. But gtags(1) failed by sort
    command error.

A4. It seems that MS sort is executed. Please set your path so that unix
    sort will be executed.

----------------------------------------------------------------------------
Q5. I invoked gtags but it failed with a message like this:

	gctags: no input files specified

    What should I do?

A5. Please check what is the gctags? You can check it with this command like.

	% which gctags
	% gctags --version

    If the gctags is not the GLOBAL's one then you should set your PATH
    so that GLOBAL's gctags will be invoked.

----------------------------------------------------------------------------
Q6. It seems that gtags cannot treat files which include blanks in the path.
    Why?

A6. Because it is hard for GLOBAL to treat them correctly with keeping
    upper compatibility. If you can do it, please send the patch to me.

----------------------------------------------------------------------------
Q7. Gtags(1) and htags(1) works only on one directory. So, we cannot refer
    library functions like strlen from my project. Any solutions?

A7. In global(1), you can use GTAGSLIBPATH environment variable.

	[library]	/usr/src/lib
	[your project]	/usr/home/project

	% (cd /usr/src/lib; gtags)
	% setenv GTAGSLIBPATH /usr/src/lib
	% global strlen
	../../../usr/src/lib/libc/string/strlen.c

    In htags(1), you can do it by copying them into your source project.
    For example:

	% cd /usr/home/project
	% cp -r /usr/src/lib .
	% gtags
	% htags

----------------------------------------------------------------------------

Shigio Yamaguchi
