___________________________________ | | | | | _ | | | | |___| | | | | _| | | | GNU GLOBAL source code tag system | | | | | | | | | | | ~~ | ~~| | ~ | | | ~~| for all hackers. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Copyright (c) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Tama Communications Corporation 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. ---------------------------------- GNU GLOBAL NEWS - User visible changes. At least, you had better search '[INCOMPATIBLE CHANGES]' for each version. Version 5.6.2 - October 26 2007, by Shigio YAMAGUCHI [CHANGES] * gtags-parser: In C++, ignore forward definitions of classes (e.g. "class name;") Version 5.6.1 - August 11 2007, by Shigio YAMAGUCHI [CHANGES] * gtags.conf: Added '.git/' to the DEFAULTSKIP list. [BUG FIXED] * global: Global(1) with the -t option didn't print correct line number. Gtags.vim also didn't work correctly due to this bug. This bug was introduced in GLOBAL-5.4. Version 5.6 - July 6 2007, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * All commands: According to the GNU coding standard, the --version option shows always verbose message without --verbose option. [CHANGES] * Migrated to GNU GPLv3 and GNU LGPLv3. * gtags-parser: Added support of assembler directive ".macro" and ".equ". [BUG FIXED] * global(1): Fix memory leak. Version 5.5 - May 5 2007, by Shigio YAMAGUCHI * GNU GLOBAL became a BOKINware. * gtags-parser: Support of 'enum' (java). * gtags.el: Changed to work without event-point function. Version 5.4.1 - March 10 2007, by Shigio YAMAGUCHI [CHANGES] * htags: Added new --item-order option. Specify order of items in the top page. The spec is a string consists of item signs in order. Each sign means as follows: c: caution, s: search form, m: mains, d: definition, f: files. The default is 'csmdf'. [BUG FIXED] * htags: didn't extract some '#include' correctly. Version 5.4 - January 29 2007, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * Further compression of tag file (format version 5). Though new global can read older tag file since version-5.0, older global cannot read new format. It might say like follows: "GTAGS seems new format. Please install the latest GLOBAL." [OTHER CHANGES] * global: Improved performance when the -x option is not specified. * globash.rc: Added new option -l for tag search command (x,r,s,g,P,I,f). This option invokes less(1) directly without tag stack. * Verbose messages are unified. P option file not found files located others object not found path format: files located other format: objects located [BUG FIXED] * Gtags(1) and global(1) didn't work well in the system root directory('/'). Version 5.3 - November 20 2006, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * global: Changed not to locate other symbols (-s) in GTAGSLIBPATH. This is the original specification of GLOBAL. * global: Stop sorting when the -I(--idutils) option specified. The output of gid(idutils) is sorted by the suitable way. Though the order is slightly differ from global(1), it need not be sorted again. [OTHER CHANGES] * global: Added new option -O(--only-other). * htags: Added some new options and new arguments which are synonyms of config variable. This decreases dependence on configration file. new option | config variable ------------------------+------------------------- --disable-grep | disable_grep --table-list | table_list --tabs= | tabs --full-path | full_path new argument | config variable ------------------------+------------------------- --line-number [columns] | ncol --func-header [position]| definition_header --xhtml [version] | xhtml_version (*=default) position: before, right, *after version: *1.0, 1.1 * htags: Changed to use each 'CVS/Repository' file to generate URLs if it is available. * htags: Added '.gitignore' to the default skip file list. * gtags.el: - Shorten path names in [GTAGS SELECT MODE]: If project directory is specified using 'gtags-visit-rootdir', gtags.el print path using the relative path name from the project directory, else print absolute path name. - Support dynamic completing-read of tag name. gtags-make-complete-list is deprecated. You can enjoy tag name completetion without invoking this command. [BUG FIXED] * gtags: gtags had exited when it encountered dead symbolic link. Version 5.2 - August 8 2006, by Shigio YAMAGUCHI * htags: Added new options: - -h(--func-header) option. - -I(--icon) option. - -T(table-flist[=fields]) option. Suggested options: $ htags -vsanohIT * htags: Changed the default color of braces from blue to red to make them stand out. * htags: Always enable 'Grep pattern' form when the -f(--form) option specified. Removed config variable 'enable_grep' since it became meaningless. Instead, added a new variable 'disable_grep'. * htags: Added more profitable tips in file browser. - File size of bytes - Directory number of files in the directory. Version 5.1 - June 10 2006, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * Changed the priority about the --result option to make the format specification easy. The --result option is given to priority more than the -t and -x option. (This option appeared in version 5.0.) [OTHER CHANGES] * Added new program 'gtags-cscope'. Gtags-cscope is a pseudo cscope which implements the line-oriented interface. You can use this command for various clients instead of true cscope. * Added new format 'cscope' to the argument of --result=. Version 5.0 - April 21 2006, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * Moved to new tag format. (GTAGS, GRTAGS, GSYMS, GPATH) The purpose is as follows: o Allows path name including blanks, at least in tag files. (GLOBAL still doesn't support path name which contains blanks.) o Decrease disk space used. o Make tag format simpler. o Realize stable performance. Hereafter, older tag format is not supported. Compact format was progressively canceled with the adoption of the new tag format. The -c(--compact) option of gtags(1) was removed. The following error messages are displayed in a wrong combination: - older global and new tag file $ global -x main GTAGS seems new format. Please install the latest GLOBAL. - new global and older tag file $ global -x main GTAGS seems older format. Please remake tag files. Known problem: - older global and new tag file Global(1) with the -g or -P command will always work as if invoked with the -o option. There is no way to avoid this problem. New requirement: * Added new requirement of plug-in parser Plug-in parser must process arguments in the order they are given in the command line. In each file, any order is acceptable. Exuberant Ctags with the -xu option meets this requirement. (See global.info for the detail.) Removed options: * gtags(1): The -c(--compact) option was removed. Compact format was progressively canceled with the adoption of the new tag format. * gtags(1): The -o(--omit-gsyms) option was removed. This option was necessary in the past to use the program in a incompetent machine with a small hard disk. Since most recent machines has powerful CPU and mass hard disk. This options might already be unnecessary. * htags(1): The --style-sheet option was removed. This is a really halfway option, and now nobody might need it because the --xhtml option became available. [OTHER CHANGES] New options: * global: Added --result= option. Grep format is newly supported. : path,ctags,ctags-x,grep conventional option | newly added option --------------------+--------------------- (none) | --result=path -t | --result=ctags -x | --result=ctags-x | --result=grep The -t and -x option are given to priority more than the --result option. Version 4.8.7 - September 30 2005, by Shigio YAMAGUCHI New options: * gtags: New --file file-list option added. Gtags(1) accept a file list specified by --file option. % find . -type f -print >/tmp/list % gtags --file=/tmp/list or % find . -type f -print | gtags --file=- * gtags: New --max-args option added. Improvement of efficiency: * Gtags was improved of performance by changing algorithm of incremental updating. Along with it, the verbose message was greatly changed. * Gtags was improved of performance by decreasing the frequency of the parser invoking. Under the influence of it, the verbose message is not necessarily real-time. If you dislike this behavior, use the --max-args option of gtags. You can control the frequency of the invoking with the option. With --max-args=1, the program does the same behavior as older version. * Htags was improved of performance by decreasing the frequency of the parser invoking. * Htags was improved of performance by omiting flushing temporary files to the disk. Fixed bugs: * Htags didn't treat here document of PHP source code correctly. (<< => It is because XHTML prohibit the id attribute which starts with a digit. If you refer these anchors from outer system, please rewrite it. [OTHER CHANGES] * htags: New option --insert-header and --insert-footer added. Version 4.8.5 - April 19 2005, by Shigio YAMAGUCHI * htags: XHTML support(--xhtml) added. If the --frame option is specified then generate XHTML-1.0 Frameset, else if config variable 'xhtml_version' is set to 1.1 then generate XHTML-1.1 else XHTML 1.0 Transitional. You can customize the appearance using style sheet file 'style.css'. * htags: Added config variable 'xhtml_version'. * htags: Added 'html/' to the fault skip list of htags(1). It is the output directory of doxygen document. * gtags-parser: Added yacc directives introduced in bison-2.0. %default-prec(%default_prec) %expect-rr(%expect_rr) %initial-action %no-default-prec(%no_default_prec,%no_default-prec,%no-default_prec) %nondeterministic-parser Version 4.8.4 - March 4 2005, by Shigio YAMAGUCHI Fixed bugs: * gtags-parser: C and C++ parser was broken. * gnusort: Compile error in Solaris environment. Version 4.8.3 - February 26 2005, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * DOS and Windows 32 support ended. But it doesn't mean the deletion of the code for DOS and Windows 32. We leave the support to outside projects and accept the code from them as is. Therefore, anything has not changed substantially up to now. * Command gctags(1) was renamed to gtags-parser(1) because some systems have another 'gctags' which is not GLOBAL's. * About gtags-parser(1), language type of source file is decided only by the suffix. In older version, *.h file was considered to be C++ source file if it includes token 'class'. But the new version considers it always C source file. If you want to consider it C++ then you must redefine new config variable 'langmap'. [OTHER CHANGES] Fixed bugs: * htags: The --gtagsconf and --gtagslabel option didn't work correctly. * htags: Buffer overflow occurred in dupindex.c:makedupindex(). * htags: Could not ignore path name which includes blank correctly. New features: * gtags,htags: New config variable 'langmap' added. This variable is used for customizing the mapping of languages and the parsers, and it includes the function of obsoleted 'suffixes' variable. If you use 'suffixes' then it is effective else GLOBAL internally generates the value of 'suffixes' from the 'langmap'. The reason to continue 'suffixes' is that it is needed for plug-in parser. If you don't use plug-in parser then you should use 'langmap' instead. * htags: New config variable 'copy_files' added. If the -f option is used then htags makes links of tag files in 'cgi-bin' directory by default. With this variable, htags copy tag files instead of linking. Version 4.8.2 - November 11 2004, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * Postgres support ended. * Htags.pl (perl version of htags) was removed completely. * Config variable sed_command and sort_command were removed. The sed(1) and sort(1) are not necessary any longer. [OTHER CHANGES] Fixed bugs: * Wrong output of 'global -Po' was fixed. New features: * gctags(assembly language): - In addition to `call', `jsr' is recognized as call instruction. Although various call instructions exist like `bl' or `calls', only `call' and `jsr' are used widely. - Macros like ENTRY or EXT are taken up as reference, when definitions exist in somewhere else. - Warning is displayed when a comment is not closed. - C_SYMBOL_NAME and C_ENTRY are recognized as a macro which shows the start of a function. - The string which is not closed finishes at the end of line. This behavior is the same as GNU C preprocessor. - The check of correspondence of "#if" and "#endif" was deleted. This did not exist in version 4.8. * New directory '.snprj/' was added to the DEFAULTSKIP list. This is the tag directory of Source-Navigator. Version 4.8.1 - October 6 2004, by Shigio YAMAGUCHI Fixed bugs: * htags: The -d option of htags didn't work. * htags: didn't recognize continued line and null directive(#). New features: * htags: make suffix list of include file configurable. (See man htags(1). config variables: include_file_suffixes) * htags: try TMP if TMPDIR doesn't exist.(only DJGPP) * htags: Warn about unknown preprocessing directive. As the exception, when unknown preprocessing directive appeared in assembly source, it will be recognized as the start of a shell comment. * htags: Add all yacc directives understood by bison-1.875. Version 4.8 - August 26 2004, by Shigio YAMAGUCHI * The htags(1) was rewritten in C language completely. It is compatible with the perl version and the performance has improved greatly. The perl version is left in the package for the time being as '/usr/local/bin/htags.pl' by default. * htags: In PHP language, pickup variables in strings. ("${aaa}") * gctags: Reserved word __thread added in C and C++. Version 4.7.2 - June 7 2004, by Shigio YAMAGUCHI Fixed bugs: * Obsolete style of sort(1) still remained. Version 4.7.1 - June 1 2004, by Shigio YAMAGUCHI New features: * Support home_etc(3) facility on PLD Linux/GNU. * gctags: Pick up external defined functions as symbols. Fixed bugs: * GLOBAL doesn't work with the GNU sort(1) based on POSIX 1003.1-2001. The GNU sort(1) with the latest glibc doesn't accept obsolete +POS1[-POS2] style option. * GLOBAL-4.3 and the later couldn't treat shadow tree. Version 4.7 - Feb 1 2004, by Shigio YAMAGUCHI * gtags.vim: Plugin script integrates GLOBAL with vim editor. * global.txi: The usage of gtags.vim script added. * global: The -o option becomes available with -P command. * gctags: [bug fixed] Gctags couldn't recognize definitions in namespace block. * Install gtags.conf and other files to $datadir/gtags. * Borland C++ compiler support in Windows32 was finished because - Now, Cygwin environment is widely used. - Borland C++ compiler is not free software. The w32/ directory is leaved in this release but will be removed in the future release. Version 4.6.1 - Oct 3 2003, by Shigio YAMAGUCHI * gtags, htags, gctags: Added '.hpp' to the suffix list of C++ source file. Version 4.6 - July 2 2003, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * The default value of the config variable 'definition_header' was changed to 'no', because the definition header is unsightly according to the place, especially in class definition. [OTHER CHANGES] * Added support for PHP language. (Known problems in htags) - The variable in string cannot be recognized.(global can recognize that.) - In HTML, the character string of the same spelling as the reserved word of PHP is recognized as a reserved word of PHP. I will rewrite htags in C language in the future to solve above problems. * Added support for SCM_DEFINE macro which is part of guile-snarf. * Added 'right' as a value of config variable 'definition_header'. * Added some tool tips. - Alphabet in alphabetical index shows the count of definitions. - File name in file index show the full path name. - Anchor to duplicate index show the number of duplicated objects. * Added .cvsrc,.cvsignore,.cvspass,.cvswrappers,autom4te.cache/ to the default skip list. Always thanks to Hideki Iwamoto san for his contribution. Version 4.5.3 - June 5 2003, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * htags: Htags does not generate the code of javascript at all. In the former version, we used javascript to display information about links. But a browser these days had come to support the tool tip using 'title' attribute. So, we replaced the function using tool tip instead of javascript facility. * The --no-javascript option was removed because it was already unnecessary. * global: The pattern of the argument came always to be interpreted as a extended regular expression. In the former version, there was both the case for the pattern to be interpreted as a basic regular expression and the interpretation as the extended regular expression. This depended on the environment of the build. (If you have grep(1) and xargs(1), basic regular expression will be used.) In the new version, if you want the pattern to be interpreted as a basic regular expression, please specify the -G option. [OTHER CHANGES] New features: htags: * CVS REPOSITORY link (the --cvsweb and --cvsweb-cvsroot option). You can link CVS repository from the hypertext of source code. * Tooltip inserted in links. * The --no-map-file option added. Htags generate 'MAP' file by default. You can suppress it by this. * The --statistics option added. With this option, htags print statistics information to the standard error. global: * The -e(--regexp) option added like grep(1). * The -G(--basic-regexp) option added like egrep(1). Performance tuning: htags: * Remove tag name and line image from cache record. This made cache file smaller. * The use of the temporary file was suppressed to the minimum by tring to read the source code. Other modifications: * A security hole was shut. * conf.h: add '{arch}' and '.notfunction' to default skip list. * gctags: support __attribute__((...)). I wish to express my gratitude continuously since last time for the contribution of Hideki Iwamoto san. Version 4.5.2 - March 29 2003, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * htags: move title's '

...

' into configuration variables 'title_begin' and 'title_end'. This makes configuration more flexible. If you are still using older version of gtags.conf, please replace it with one in this version. [OTHER CHANGES] * htags: add INCLUDED FROM index of htags by Hideki IWAMOTO. This indexes the places where the header file is included. * htags: add support of multi-line string. * htags, gtags: pass option '-w' from htags to gtags. * htags: allow reference to nonexistent definition without warning. * htags: add missing reserved words. - add C99 reserved words _Bool,_Complex,_Imaginary,inline,restrict. - add missing C++ reserved words asm,bool,const_cast,dynamic_cast, explicit,export,false,mutable,namespace,reinterpret_cast,static_cast, true,typeid,typename,using,wchar_t. * htags: insert HTML tag in the line which was warned. (see configuration variable 'colorize_warned_line', 'warned_line_begin' and 'warned_line_end'.) * gctags: pick up reference to macro in conditional directive. * gctags: remove wchar_t from the reservation word list of C. * gctags: remove overload from the reserved word list of C++. * gctags: remove wchar_t from the reservation word list of C. * gtags: environment variable GTAGSCACHE added. * and many bug fixes. Special thanks to Hideki Iwamoto san. Most of improvemnts and bug fixes in this version are written by him. Version 4.5.1 - November 9 2002, by Shigio YAMAGUCHI [INCOMPATIBLE CHANGES] * htags: --symbols option and symbols config variable was renamed to 'symbol'. [OTHER CHANGES] * gtags,htags: --gtagslabel option added. * htags: -D(--dynamic) option added. * Some bugs fixed. Version 4.5 - July 4 2002, by Shigio YAMAGUCHI * htags: -m(--main-func) option added. * htags: --style-sheet=