
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 directory 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.

		  Thanks to David Brownlee for his idea.

	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.

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

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

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

	[fixed bugs]
	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.

version 3.43	a couple of bugs fixed. [20-Jan-99]

	[fixed bugs]
	htags	- cannot return root index in main form when using
		  gzipped html file.
		- background color specified by global.conf cannot
		  be applied when -h option is used.
		- cannot set vlink and alink colors in <body> tag.
	gctags/*.[ch]
		- wrong copyright notice fixed. (regents -> author)
	btreeop	- didn't skip meta record with no option.

	[changed]
	gtags.el- stop auto execution of gtags-make-complete-list.
		  you can do it by ESC-c.
	gtags	- prohibit user from using a path including blanks.
	gozilla	- path conversion rule added. (It will be used in the future.)

	[added]
	htags	- META TAG added to reject robots.

version 3.44	some minor changes for portability and security [22-Mar-99]

	[fixed bugs]
	htags	- couldn't detect '#[ \t]*macro' like '# define A 1'.

		Thanks to Yann Dirson for his bug report.

		- variables in 'global.cgi' are not evalated.

		Thanks to Ron Lee for his bug report and fix patch.

	[changed]
	htags	- internal path changed for ISO9660 file system.
		- file index was changed to have the last component of
		  the path not a full path by default.
		- modify to treat *.H file as a include file.
	Makefile.generic
		- DESTDIR macro added.
	Makefile, Makefile.generic
		- systags.sh isn't installed because it isn't generic command.
	[added]
	global.conf
		- fullpath parameter added. (for htags)
		- normal_suffix parameter added. (for htags)
	libdb/	- db(3) 1.85 was imported to keep machine and platform
		  independency in generic make. 'dbpatches' already has been
		  applied.
	gctags	- NENTRY() in asemmbler source code supported. (for NetBSD)
	htags	- --action=url, --id=id and --nocgi options added to realize
		  a safe cgi script.

		  Thanks to Ron Lee for his design and implementation of
		  'a safe cgi mechanism'.

version 3.5	Support of C++, XEmacs and WIN32 ready. [23-Aug-99]

	[fixed]
	gozilla	- coudn't treat old style hypertext tree.
	gtags	- corrupted database when interrupted.
	global	- -Pl '^pattern' in subdirectory didn't work.
	libutil	- mgets destroyed memory.

		  Thanks to IWAMURO Motonori for his bug report and fix patch.

		- getdirs doesn't work when undefined USEFIND.

		  Thanks to Dan Fandrich for his bug report and fix patch.
	
	gctags	- core dumped on some .C or .h files.

		  Thanks to Yann Dirson for his bug report.

		- couldn't pick up macro definition with no argment.

	[added]
	gtags, global, htags, gozilla, gtags.el
		- C++ support added.
	gtags, gctags, global, htags, btreeop
		- WIN32 Borland C++ (4.5 or 5.0) support added.

		  Thanks to Dan Fandrich for his port.

	gtags.el
		- XEmacs support added.

		  Thanks to
			Klaus Borchers
			okabe katsuyuki
			Toshiyasu KOJIMA
			MORIOKA Tomohiko
		  for their advice about xemacs.

		- gtags-find-file(ESC-l) command added.
	htags	- symbol search support was added with -f option.
	global.conf
		- quoted char '\' became available. You can use it like this.
		  '...:GTAGS=c\:/usr/bin/specialtag.exe:...'
		- sort and sed command became parameterized.
	gozilla	- https, ftp, nntp, mailto and about protocols were added.
	All files
		- copyright notice of Tama Communications Corporation.
	gctags/C.c
		- recognize #ident and #warning.
	gctags/assembler.c
		- recognize C_LABEL(x) and SYMBOL_NAME(x)
	libregex/ - regex(3) imported.

	[changed]
	systags.sh
		- parameter for gtags was changed from -owv to -wv.
	global	- -s option allowed with -c and -f command.
	All files
		- statement of license agreement 3.
		  Shigio Yamaguchi ->
			Tama Communications Corporation and its contributors.
		- My mail address
		- delete #include <sys/param.h> for compatibility.
		- delete __P() macro. It was for K&R C compiler.
	VERSION	- version number was moved to libutil/version.h.
	some files
		- some statements have been changed for generic UNIX.

		  Thanks to Marco Corvi for his information about
		  Digital Unix 4.0C.

		  Thnaks to Koen Hufkens for his information about
		  HP-UX 10.x.

	libdb/db.h, gozilla/Imakefile
		- slightly chagned for Debian GNU/Linux + powerpc.

		  Thanks to Ron Lee and Debian's porters for their patch.

	libutil/find.c
		- USEFIND undefined by default.
	gozilla	- specify -raise option.
	htags	- rewrite header #!/usr/bin/perl -> #!/usr/bin/env perl
	---
	Dan Fandrich ported Global-3.44 into WIN32 environment.
	I have included his codes into this version (3.5) and altered them
	for some (mainly licensing) reasons, so any bugs in this area
	are therefore my fault, not Dan's.

version 3.51	Support of Cygwin32. [26-Aug-99]

	[added]
	gtags, gctags, global, htags, btreeop
		- Cygwin tools environment support added.

		  Thanks to David Aspinwall for his port.

	---
	David Aspinwall ported Global-3.44 into cygwin32 environment.
	I have merged his codes and Dan Fandrich's WIN32 code into this
	version (3.51). So any bugs in this area are therefore my fault,
	not David's.

version 3.52	Support of gozilla in WIN32 environment [29-Aug-99]

	[fixed]
	gctags	- hanged when reading unix style text file in WIN32 environment.
		  (In Borland C, lseek() doesn't work to text file.)
	htags	- quotation error in global.cgi.

	[added]
	WIN32 support of gozilla
		- Only for Borland C compiler.

version 3.53	Improved gtags.el and slightly modified [17-Sep-99]

	[added]
	compat.h- Macro for Solaris added.

		  Thanks to
			Paul Lew
			Dirk Schultheis
			Yoshinori TOMITA
		  for thier advice.

	gtags, htags, gctags
		- --version option added.

		  Thanks to Marty Leisner for his advice.

	FAQ	- new faq added.

	[changed]
	gtags.el- ESC-t and ESC-r use current token as a default tag.
		- ESC-t and ESC-r use mini-buffer history.

		Thanks to Jun Obama for his patch.

	Makefile.bsd, Makefile.inc
		- description about libregex.a was deleted because BSD
		  has it in libc.

version 3.54	a couple of bugs fixed [3-Nov-99]

	[fixed]
	gctags	- gctags  - couldn't treat comment (/* ... */) that
		  include multi-byte character.
	htags	- index wasn't generated for large project.

version 3.55	optimize the -s and the -g option [23-Dec-99]

	[fixed]
	htags	- removed all files in current directory in some error case.
		  (Only 3.54 have this bug.)
	[changed]
	global	- optimize the -s and the -g option.

		Thanks to Darryl Okahata for his benchmark report.
