
GLOBAL history
--------------

version 1.0	Initial version [21-Apr-96]

	global, gtags, btreeop, extended ctags.

	Thanks to Sadaichi Hayashida. Generating relative path is his idea.

version 1.1	Only bugfix [2-May-96]

	[fixed bug]
	global	- makes corrupted path name by conversion error.
		- description of exit code in online manual is mistaken.
	btreeop	- cannot treat a long line over BUFSIZ. With the result
		that gtags fails.
	extended ctags - when using -r option, considers a reserved word
		to be a function name. With the result that GRTAGS becomes
		too large.

version 1.2	Support of 1.34 nvi [7-Jun-96]

	[changed]
	extended ctags
		- change to use bsearch(3) for searching reserved words.
		- change to consider '__P' as a reserved word.
		- unify the original patch (included in version1.0) and
		  the bugfix patch (included in version1.1).
	[added]
	extended vi
		- VI tag support.

version 1.3	Support of GTAGSLIBPATH [28-Jul-96]

	[changed]
	global  - search not only in a source tree but also in library paths
		  specified by environment variable GTAGSLIBPATH.
	extended ctags
		- change print format a little when -x option

version 1.4	Support of yacc source file [26-Oct-96]

	[changed]
	extended ctags
		- support of yacc source file.
		- this version of ctags is NOT COMPATIBLE with original one.
		  * search all part of a yacc file for C functions.
		    (original only 3rd part)
		  * no longer considers a yacc rule to be an object.

version 1.5	Hypertext generator [12-Dec-96]

	[fixed bug]
	gtags	- treat 'y.tab.c' as a C source.(we should treat only *.y)
	extended vi
		- free stack memory. free(3) in FreeBSD 2.1.5R seems to
		  show a warning message when receive stack address.
		  So it spoils the screen.
	[added]
	htags	- new command (hypertext generator of C source file)
	gtags	- error check code added.

version 1.6	Support of 1.76 nvi and reconstruction for other OS [21-Jan-97]

	[changed]
	htags	- cease using <BLOCKQUOTE> because lynx doesn't understand it.
	global,htags
		- replace 'sort -u' with 'sort | uniq' for compatibility reason.
	[fixed bug]
	global	- makes illegal path name when using GTAGSLIBPATH.
	gtags	- error message mistaken.
	[added]
	nvi-1.76.diff
		- patch for nvi 1.76 to make extended vi.
	gctags	- this is the same with extended ctags in older version.
		  now GLOBAL includes BSD ctags in it. so no longer has
		  patch file (ctags.diff).
		  (I brought original ctags from FreeBSD 2.1.5R)

		  Thanks to
			Gary Kline
			Hideki Mori
		  for their advice.

	global	- -a option added.

version 1.7	Make suitable for large project (mainly FreeBSD kernel) [17-Feb-97]

	[changed]
	htags	- htags no longer makes frame.html. Index.html offers frame
		  function too.
		- works MUCH faster than previous version.
	[fixed bug]
	htags	- generate path name including '&param'. (It means special
		  charactor in hypertertext.)
		  So, changed internal separator from '&' to '|'.
	[added]
	gtags	- -s option added. If specified, gtags extract ENTRY() and
		  ALTENTRY() from *.[sS] files.
	htags	- support one level nested index. It's always valid for file
		  index when directories found, and valid for function index
		  only when -a option specified.
		- -v and -t option added.
	systags.sh
		- script to make all tags (GTAGS,GRTAGS,HTML) for kernel source.
		  (it is only for FreeBSD and Linux)

version 1.8	Fix some bugs, add options and make more portable [5-Apr-97]

	[changed]
	gctags, btreeop, Makefile
		- modify for generic UNIX (Linux, Solaris)
		- modify to quiet compiler.

		Many thanks to
			A.E. Brouwer
			Oleg Checkulaev
			Emile Heyns

	gctags	- modify to treat '\r' at the end of line.
	htags	- changed internal separator from '|' to ' '.
		  because some OS cannot treat '|' in a path.
	[fixed bug]
	htags	- regard a part of path in #include as a reserved word.
		- generate illegal links when same tags exist in a line.
		- insufficient comment detection.

		  Thanks to Jeffrey Friedl. I took his code for complete
		  comment detection.

	gctags	- regard function name as a definition in extern statement.
		- skip macro(no argment) body when -r specified.
	gctags, htags
		- regard 'entry' as a reserved word.
	[added]
	global	- -c (complete) option added.
	htags	- -d tagdir option added.
		- -w option added.

version 1.81	Make global to understand 'obj' directory [14-Apr-97]

	[fixed bug]
	extended vi
		- doesn't hand '\' in a pattern to global.
	[changed]
	global
		- can find tag file in obj directory.

version 1.9	Support of 1.79 nvi and some additional options [21-Apr-97]

	[fixed bug]
	htags   - doesn't keep the code formatted correctly.
		  So, changed to convert tabs in source files into spaces.
		  (expand(1) needed)
		
		  Thanks to Andy Newman for his bug report and fix method.

		- cannot print error message correctly.
	[changed]
	gctags, btreeop
		- modify for SunOS 4.1.3.

		  Thanks to Yoshiharu Ito for his information.

	[added]
	btreeop - META record is available.
		  (It will be used in the furture.)
		- -A and -D option added.
		  (It will be used in the future.)
	global	- 'format version record' is available.
		  (It will be used in the furture.)
	htags   - use temporary directory specified by TMPDIR environment
		  variable.
		- -l option added.

		  Thanks to Jeff Trawick. This option is his idea.

	nvi-1.79.diff
		- patch for nvi 1.79 to make extended vi.

version 2.0	Support of Emacs and CGI Form [7-Jul-97]

	[fixed bug]
	gtags, htags
		- treat files under 'RCS/' or 'SCCS/' directory.
	global	- allow relative path of GTAGSDBPATH and GTAGSROOT.
	htags	- illegal tag generated when no definition found.
	[changed]
	htags	- changed not to print line number by default.
		  If you need it, -n option should be specified.
		- added the command name to error message.
		- avoid sort(1)'s bug.
		- changed for performance.
	systags - use -n, -f option for htags by default.
		  doesn't use -w option for htags by default.
	gtags	- rewritten with perl.
	gtags, gctags
		- move some code for assembler source from gtags to gctags.
	gtags, htags, global
		- restrict PATH to '/bin:/usr/bin'.
	btreeop - expand tabs into spaces of output.
	[deleted]
	nvi-1.76.diff
	[added]
	gtags.el- emacs support (emulation of 1.34 nvi) added.
	htags	- hyperlink for include files added.
		- check if GTAGS is the latest one.
		- -f option added.
		  With this option, you can use input form and dynamic
		  index. (You need to setup httpd server for it.)
		- -n option added.
	global	- -f option added.
	btreeop - -L option added.

version 2.1	Symbol search, incremental update and gozilla [20-Sep-97]

	[changed]
	gtags	- -e option and -s option were deleted.
		  These options become default, so you need not to specify
		  them. Gtags accepts these options for compatibility but
		  no effect.
	global	- understand 'obj'(MAKEOBJDIR) directory and '/usr/obj'
		  (MAKEOBJDIRPREFIX) directory of BSD build system.

		  Thanks to Jordan K. Hubbard. This is his idea.

	gctags, btreeop
		- remove <err.h> for portability. (Sorry, Philippe...)
	btreeop - output procedure rewritten.
			detab() + fprintf -> detab_print()
	gtags, htags, global
		- don't restrict PATH to '/bin:/usr/bin' like version 1.9
		  and the former.
	[fixed bug]
	gctags	- cannot treat files which include '\r'.

		  Thanks to Christoph Conrad for his bug report.

		- is disturbed by '_asm' statement.
		- write buffer beyoned the end when source file doesn't
		  end with '\n'. It brings segmentation fault.
	gtags.el- ESC-r command doesn't work.
	htags	- has a security hole in global.cgi.
	btreeop	- corrupt database when interrupted.
	all command
		- description of exit code in online manual is fixed.
	[added]
	gozilla
		- new command.
	gtags, gctags, global
		- can locate specified symbol other than function name
		  using GSYMS tag file.
	btreeop - support secondary key.
		  Optional key number added to -K option and -D option.
		- -k option added.(prefix read)
	global
		- -g option added.(grep pattern)

		  Thanks to Hideaki Okada for his advice.

		- -s option added.(symbol search)
		- -i option added.(incremental update)
		- -l option added.(search only under current directory)
		- -v option added.(verbose mode)
	gtags	- -i option added.(incremental update)
		- -v option added.(verbose mode)
		- -o option added.(stop making GSYMS tag file)
	gtags.el- gtags-find-symbol command (ESC-s) added.
		  It is equal to global's -s option.
		- gtags-find-pattern command (ESC-g) added.
		  It is equal to global's -g option.

version 2.11	Only bugfix [7-Nov-97]

	[fixed bug]
	htags, gtags
		- cannot treat symbolic link.

		  Thanks to Yoshiharu Ito for his bug report.

	Makefile.generic
		- doens't work on Debian GNU/Linux.

		  Thanks to Y.Yoshinaga for his patch.

version 2.2	Rewritten with C for performance [7-Dec-97]

	[changed]
	gtags, global, gozilla
		- rewritten with C.
	global	- adopted POSIX regular expression (extension) instead of
		  perl's one.
	htags	- shape up anchor database.
	btreeop	- some options (-b, -c, -l, -p) were deleted.

version 2.21	Bugfix and slightly modified [11-Dec-97]

	[fixed bug]
	gtags, global
		- doesn't skip RCS, SCCS, y.tab.c, y.tab.h.
	global	- generates illegal path name when using GTAGSLIBPATH
		  with -a option.
	[changed]
	lib/Makefile.generic
		- MANDIR = /usr/share/man -> MANDIR = /usr/man
		- replace `lorder $(OBJS) | tsort -q` to already sorted list.
		  for S.u.S.E Linux 5.1.

		  Thanks to Christoph Conrad for his information.

	gtags, lib/test.c
		- some change for Solaris environment.

		  Thanks to Yamashita TAKAO for his information.

	htags/Makefile, systags/Makefile
		- ${DESTDIR}/usr/bin  -> ${DESTDIR}${BINDIR}

version 2.22	GRTAGS support for assembler source [26-Dec-97]

	[changed]
	gtags, gctags, htags
		- recognize following patterns as a function reference
		  to C function xxx().
			call EXT(xxx)
			call _xxx

		  Thanks to Yamashita TAKAO for his idea.

version 2.23	Bugfix and slightly modified [13-Jan-98]

	[fixed bug]
	gctags	- GRTAGS support in version 2.22 doesn't work.

		  Thanks to Yamashita TAKAO for his bug report.

	[changed]
	gctags/Makefile, gctags/Makefile.generic
		- -DGLOBAL -DYACC was removed.
	gctags/ctags.h
		- #define GLOBAL 1 and #define YACC 1 were added.

	[added]
	COPYING	- Copyright notice was added.

version 2.24	Only bugfix [20-Jan-98]

	[fixed bug]
	global	- generates wrong path name when GTAGSROOT includes symbolic
		  links.

		  Thanks to Wolfgang Helbig for his bug report.

	htags	- cannot treat path name which includes digit as the second
		  character like 'i386'. (In fact it was expand(1)'s bug.)

		  Thanks to Andrew Gallatin for his bug report.

	global	- doesn't search 'obj' directory correctly.

version 3.0	configuration file and compact format. [25-Jun-98]

	[fixed bug]
	gozilla	- leaks memory.
	gctags	- -s option pick up symbols which belongs to GTAGS or GRTAGS.
	global 	- cannot treat file which doesn't end with '\n'.
	gtags	- incremental update cannot detect removed files.
		  (GPATH file added.)
		- make corrupted tag files.
		  (dbpatches/README added.)

		  Thanks to Van Trinh for his bug report and information.

	htags	- cannot be viewed by IE 5.0 because illegal <NOFRAME> tag.

		  Thanks to Yoshida Masato for his bug report and fix patch.

	[changed]
	gctags	- -c option removed. These code was moved to gtags.
		  (It was needed for supporting plugged-in parser.)
	global	- -f option excute tag command instead of reading tag file.
		  (It became very faster than previous version.)
	gtags.el- check whether or not user want to use tag name completion.
	htags	- URL of GLOBAL home page changed.
	systags	- gtags's option changed from -v to -cov.
	gtags.c	- replace "%+" of strftime with "%a %b %e %H:%M:%S %Z %Y".
		  for Debian GNU linux 1.3.1.

	[added]
	gtags	- -c option added. (compact format)

		  Thanks to Takeshi Hojo. Compact format is based on his concept.

	htags	- -c option added. (to make gzipped html file)

		  Thanks to Oliver Paukstadt. This option is his idea.

	gtags, htags
		- support configuration file.
		  (/etc/global.conf or $HOME/.globalrc)
	gctags	- -n option added.
		  --config option added. (It's undocumented.)
	global	- -t option added.
		  This option is to use with 'tagprg' and 'tagprgonce' command
		  in Elvis editor (2.1g-beta or later).

		  Thanks to Steve Kirkendall for his excellent editor and
		  refined command set.

version 3.01	Almost bugfix [5-Jul-98]

	[fixed bug]
	global	- print file names in a line.
	gozilla	- assume html file as a source file.
	btreeop	- insufficient usage check.
	htags	- cannot treat path including "++".

	[changed]
	global	- -f option became to accept multiple files.
	all	- fixed warning by -Wall -Wmissing-prototypes.

version 3.1	Support of Java language [4-Aug-98]

	[fixed bug]
	htags	- locate main functions from the path which belongs
		  GTAGSLIBPATH when there is no main function in the local
		  source tree.

	[added]
	gtags, global, htags, gozilla, gtags.el
		- java supprt added.
	gtags	- --find option added. (internal use only - undocumented)
		- --expand option added. (internal use only - undocumented)
	htags	- -h option (title header frame) added.

		  Thanks to Shigeyuki Yamano. This is his idea.

		- line comment('//') detection added.
	gctags, systags
		- GTAGSSPECIAL environment variable added to treat system
		  macros like 'SYSINIT' in FreeBSD.
	global.conf, lib/conf.c
		- 'CVS/' added to 'skip' parameter.

	[deleted]
	gtags.conf
		- 'reserved_words' for htags(1) was deleted.
		  It is hard coded.

	[changed]
	htags.pl- print guide links in .h file too.

version 3.2	new patch for nvi-1.79(1.66) and multilingual nvi [31-Aug-98]

	[fixed bug]
	nvi-1.79.diff
		- may have buffer overflow.

		  Thanks to David Brownlee for his advice.

		- suppress error message 'GTAGS not found'.

	[added]
	nvi-1.79-m17n.diff
		- patch for multilingual nvi which is included FreeBSD as
		  a ports.
	nvi-1.66.diff
		- patch for nvi-1.66 which is native command of NetBSD 1.3.2

	[deleted]
	nvi-1.34.diff
		- it is old enough to support.

	[changed]
	gozilla/Imakefile
		- make possible to build gozilla alone without building
		  libgloutil.a.

version 3.3	Rewriting gctags(1) and some bug fix. [13-Sep-98]

	[fixed bug]
	gctags	- look over inner class in a method.(Java)
		- cannot treat 'OBJECT.class' pattern correctly.(Java)

	[changed]
	Makefile*
		- library name changed from libutil.a to libgloutil.a becase 
		  that is already used.
		- definition of MANDIR deleted.
	global.conf
		- comment fixed.
	systags.sh
		- additional support for NetBSD, OpenBSD, GNUmach and GNUhurd.
		- doesn't use CGI form by default.
		- use gtags -l and -h option by default.
		- -g(gtags only), -f(form) and -c(compact) option added.

	[deleted]
	gctags	- fortran and lisp language support were deleted, because
		  it was not supported in GLOBAL system.
		- -a, -d, -f, -t, -u, -w, -v options were deleted,
		  because it was not used in GLOBAL system.
		- -D, -x options were deleted. These options became default.
		- GTAGSSPECIAL was deleted.

	[added]
	gctags	- #if (#else #elif) #endif block parsing added.
		- pick up #define in assembler source.
		- can pick up object like 'definition\n\n() {'.
		- -b, -n, -w options were added.
	gtags.el- gtags-display-browser(ESC-h) command added.
	INSTALL	- explanation about formatting online manuals added.

		  Thanks to Bert Gijsbers for his investigation.

	Extended ctags has been completely replaced with new gctags.
	Thanks to Ken Arnold and the other people who developped BSD ctags(1).
	Without it, GLOBAL had never been here.

version 3.4	Unlimited nested index of htags(1). [8-Nov-98]

	[added]
	global	- --filter option added. (internal use only - undocumented)
	htags	- tabs parameter added in global.conf to change tab stop.
	btreeop - '2' option added to the -L command.

	[changed]
	htags	- unlimited nested index of files supported.
	README, htags.1,
		- statements fixed.

		Thanks to Silas S. Brown for his fixing the statements.

	Makefile.generic
		- make sub makefiles inherit the macros from the root Makefile.

version 3.41	description added to README file. [10-Dec-98]

	[added]
	README	- usage description added.
		  '5. Elvis using global'
		  'A.3. Incremental updating'
	INSTALL	- description about Elvis added.

	[change]
	global	- -t option is available with -P command.
	global	- assume "global -c ''" as "global -c".

	[deleted]
	nvi-1.79-m17n.diff
		- because it is difficult for me to maintain. Sorry.

version 3.42	a couple of bugs fixed. [8-Jan-99]

	[fixed]
	btreeop.c,gctags.c,global.c,gozilla.c,remote.c,gtags.c
		- 'void main()' is not valid by the C spec.

		  Thanks to David Brownlee for his patch.

	gtags.el- redefinition problem fixed.
		  (renamed match-string to util-match-string.)

		  Thanks to Daisuke Kawahara for his bug report.
