(gperf): Added keywords for Objective C and GNU macros.
(sym_type): Added values to account for Objective C and GNU macros.
(begtk): The '@' character can start a token.
(objdef, methodlen, objtag): New variables for Objective C.
(consider_token, C_entries): Added code for Objective C.
(plain_C_suffixes): Add .m and .lm for Objective C.
(Yacc_suffixes): Add .ym for Objective yacc.
(GROW_LINEBUFFER): New macro.
(consider_token, C_entries, Pascal_functions): Use the new macro.
(consider_token): Take one more argument. Caller changed.
(consider_token): Use the hashing function to spot GNU macros.
(C_entries): Consider // as a comment start even in plain C for
the sake of Objective C parsing.
(pfnote): Don't make a tag for ctags if there is no name.
(getit, Asm_labels, Perl_functions, Pascal_functions, L_getit,
get_scheme, prolog_getit): Name the tag in ctags mode.
(pfnote): Truncate ctags lines to 50 chars, like it worked once.
(Perl_interpreters): Accept "@PERL@" as an interpreter.
(suggest_asking_for_help): New function.
(main, get_language_from_name): Use suggest_asking_for_help.
(main): Let get_language_from_name make language existence check.
(streq, strneq): Check the arguments #if DEBUG.
get_lang_from_suffix): New functions.
(get_language): Function deleted.
(lang_entry): Two members added to struct.
(lang_names): Reflect the new layout of lang_entry.
(print_language_names, main, find_entries): Use the new functions.
(find_entries): Look at the first line for #! if no language.
(C_entries): Invalidate the token when funcdef is reset.
(Perl_functions): New function.
(lang_suffixes): .pl and .pm are Perl suffixes.
(substitute): Remove some wrong and some useless code related with
escape `\` character in regexp replacement string.
(TEX_defenv): Added part, appendix, entry, index. Removed typeout.
(lang_suffixes): New suffixes: .hpp for C++; .f90 for Fortran;
.bib, .ltx, .TeX for TeX (.bbl, .dtx removed); .ml for Lisp;
.prolog for prolog (.pl removed).
(massage_name, etags_getcwd): Use lowcase instead of tolower.
(regex.h): Don't include it if REGEX_IN_LIBC is defined.
(C_entries, find_entries): Added comments about memory leakage.
(add_node): Dead code removed.
(add_node): Correctly compare node file names.
(Pascal_functions): Correctly allocate and free memory for tline.
(pfnote): Put the definition of fp in the innermost block.
(NODE): `named' member removed.
(pfnote, free_tree, put_entries, total_size_of_entries): Do not
use the `named' member, check whether `name' is NULL instead.
(pfnote): `named' argument removed, all callers changed.
(getit, Asm_labels, Pascal_functions, L_getit, get_scheme,
TeX_functions, TEX_getit, prolog_getit): Useless string allocation
removed from pfnote call, some code cleanup.
(relative_filename): Free temporary space allocated by concat.
(lowcase): new macro.
(tail, Fortran_functions, Pascal_functions): use new macro lowcase.
(lang_suffixes): new suffix ".pc" for Pro*C files.
(consider_token): don't tag all tokens beginning with DEFUN & Co..
(tail): look for the end of the token when comparing.
(takeprec): since now tail behaves differently, use strneq.