comparison etc/ChangeLog.etags @ 3876:a827a51c3241

[xemacs-hg @ 2007-03-24 11:46:37 by stephent] Update to pot revision 17.26. <87ejnex3gv.fsf@uwakimon.sk.tsukuba.ac.jp>
author stephent
date Sat, 24 Mar 2007 11:46:43 +0000
parents
children
comparison
equal deleted inserted replaced
3875:13bc23e816aa 3876:a827a51c3241
1 2007-01-02 Francesco Potortì <pot@gnu.org>
2
3 * etags.c: (longopts): New undocumented option --no-duplicates.
4 (no_duplicates): Static variables for the above option.
5 (print_help): Do not print help for --no-warn, now undocumented.
6 (add_node): Allow duplicate tags in ctags mode unless --no-duplicates.
7 (main): Pass the -u option to sort in ctags mode.
8
9 2006-12-28 Francesco Potortì <pot@gnu.org>
10
11 * etags.c (readline): When creating a relative file name from a
12 #line directive, leave the file name alone. The previous
13 behaviour was to make it relative to the tags file directory,
14 under the hypothesis that the #line directive file name was
15 relative to the directory of the tagged file. That hypothesis is
16 wrong with Cpp and Lex.
17
18 2006-12-20 Francesco Potortì <pot@gnu.org>
19
20 * etags.c (C_entries): DEFUN names were longer by one: corrected.
21 (Makefile_targets): Do not include spaces in tag names.
22
23 2006-08-12 Kevin Ryde <user42@zip.com.au>
24
25 * etags.c (readline): Check for double quote after #line.
26
27 2006-08-12 Jan Djärv <jan.h.d@swipnet.se>
28
29 * etags.c (readline): sscanf could in principle return 2.
30
31 2006-08-12 Francesco Potortì <pot@gnu.org>
32
33 * etags.c (readline): lno is unsigned.
34 (TeX_commands): Use p++ (rather than *p++) to increment p.
35 (Lua_functions): Explicitely discard LOOKING_AT's return value.
36
37 2006-08-07 Masatake YAMATO <jet@gyve.org>
38
39 * etags.c (TEX_mode): Check getc retruns EOF.
40 File ended without newline causes infinite loop.
41
42 2002-07-14 Adrian Aichner <adrian@xemacs.org> (tiny change)
43
44 * etags.c: It's XEmacs, not Xemacs: change all the occurences.
45
46 2006-07-10 Francesco Potortì <pot@gnu.org>
47
48 * etags.c [ETAGS_REGEXPS]: #ifdef's deleted, define unconditionally.
49 [LONG_OPTIONS]: Changed to NO_LONG_OPTIONS, now normally undefined.
50 (Objc_suffixes): Suggest using --lang=c for full help.
51 (C_entries): Initialise savetoken to 0 to shut up the compiler.
52
53 2006-07-10 Francesco Potortì <pot@gnu.org>
54
55 * etags.c (absolute_filename): Free unused space (cosmetic change).
56 (in_word_set): In C, also tag #undef symbols.
57
58 2006-05-02 Francesco Potortì <pot@gnu.org>
59
60 * etags.c (Perl_functions): Free space allocated for var package.
61 (Erlang_functions): Possibly free space allocated for var last.
62 (Prolog_functions): Possibly free space allocated for var last.
63
64 2005-11-18 Hideki IWAMOTO <h-iwamoto@kit.hi-ho.ne.jp> (tiny change)
65
66 * etags.c (main): Cxref mode writes to stdout: do not close tagf,
67 which was never opened.
68
69 2005-09-27 Francesco Potortì <pot@gnu.org>
70
71 * etags.c: Preliminary Forth support.
72 (prolog_pr): Cast strlen to int before comparison.
73 (LOOKING_AT, LOOKING_AT_NOCASE): Let the preprocessor check that
74 the second argument is indeed a literal string.
75 (main): In append mode, sort the tags file after writing it.
76
77 2005-09-27 Emanuele Giaquinta <emanuele.giaquinta@gmail.com> (tiny change)
78
79 * etags.c (longopts, print_help, main): The -a (--append) option
80 can be used in ctags also; for one, the Linux make file uses it.
81
82 2004-09-13 Francesco Potortì <pot@gnu.org>
83
84 * etags.c (main): When relative file names are given as argument,
85 make them relative to the current working dir, rather than
86 relative to the output tags file, if the latter is in /dev.
87
88 2004-09-13 David A. Capello <dacap@users.sourceforge.net> (tiny change)
89
90 * etags.c: (Lua_suffixes, Lua_help, lang_names, Lua_functions):
91 Support the Lua scripting language <http://www.lua.org>.
92
93 2004-09-13 Francesco Potortì <pot@gnu.org>
94
95 * etags.c [EXIT_SUCCESS, EXIT_FAILURE]: Define them when no
96 <stdlib.h> is available.
97 (enum sym_type): New st_C_attribute value for parsing
98 gcc's __attribute__. Deleted st_C_typespec value.
99 (gperf, in_word_set): Use gperf 3, options changed. Added the
100 __attribute__ keyword, removed all the st_C_typespec keywords,
101 changed attribute for Java to (C_JAVA & !C_PLPL).
102 (inattribute): New global bool, part of the C state machine.
103 (cblev): Identifier renamed to bracelev throughout.
104 (consider_token, C_entries): Numerous changes for making the
105 parser more robust and adding support for __attribute__.
106
107 2004-09-08 Francesco Potortì <pot@gnu.org>
108
109 * etags.c: Add arch taglines
110 [LONG_OPTIONS]: make it TRUE (ifdef) or FALSE for ease of use.
111 [GOOD, BAD]: renamed to EXIT_SUCCESS, EXIT_FAILURE.
112 (suggest_asking_for_help): Fix having macros in a printf statement.
113 (consider_token): check C++ `operator' only when the token len is
114 long enough.
115
116 2003-01-09 Francesco Potortì <pot@gnu.org>
117
118 * etags.c: changes for language-sepcific help by Philippe
119 Waroquiers <wao@cfmu.eurocontrol.be> applied and largely revised.
120 (language): Added a `help' member.
121 (arg_type): Added an at_end constant.
122 (plain_C_suffixes): Some items removed from here.
123 (Objc_suffixes): And put here (new constant).
124 (Ada_help, Asm_help, default_C_help, Cplusplus_help, Cjava_help,
125 Cobol_help, Erlang_help, Fortran_help, HTML_help, Lisp_help,
126 Makefile_help, Objc_help, Pascal_help, Perl_help, PHP_help,
127 PS_help, Prolog_help, Python_help, Scheme_help, TeX_help,
128 Texinfo_help, Yacc_help, auto_help, none-help, no_lang_help): New
129 constants.
130 (PS_functions, PS_suffixes): Renamed from Postscript_functions and
131 Postscript_suffixes.
132 (lang_names): Adapted to the new language structure, new language
133 "objc" added (was previously merged with "proc").
134 (print_language_names): Some help strings corrected.
135 (print_help): Now takes an argument and possibly prints lang help.
136 (print_help): Some help strings corrected. Documents
137 language-specific help.
138 (main): Only print help after having parsed all the arguments.
139
140 2002-09-03 Francesco Potorti` <pot@gnu.org>
141
142 * etags.c (regex_tag_multiline, readline): Never pass pfnote a
143 string that cannot be freed.
144
145 2002-08-30 Francesco Potorti` <pot@gnu.org>
146
147 * etags.c (consider_token, C_entries): Switch to C++ parsing when
148 auto-detection is enabled and the `::' qualifier is met.
149 (consider_token, C_entries): Several bugs corrected that tagged
150 some declarations even though --declarations was not used.
151 (plainc): New macro.
152 (C_entries): Use it.
153 (C_entries): Several cosmetic changes.
154 (C_entries): Invalidate the token is some cases.
155
156 2002-08-29 Francesco Potorti` <pot@gnu.org>
157
158 * etags.c (C_entries): Corrected a problem with const C++ funcs.
159 (ignoreindent): Renamed from noindentypedefs.
160 (cjava, cplpl): They are now macros instead of local vars.
161
162 2002-08-28 Francesco Potorti` <pot@gnu.org>
163
164 * etags.c (HTML_labels): Tag ID= also.
165
166 2002-08-27 Francesco Potorti` <pot@gnu.org>
167
168 * etags.c (Ada_funcs): Do not tag "use type Xxxx;".
169
170 2002-06-25 Francesco Potorti` <pot@gnu.org>
171
172 * etags.c: New language HTML.
173 (make_tag): Never generate null length tag names.
174 (linebuffer_init): Renamed from initbuffer. All callers changed.
175 (pattern): Structure renamed to `regexp', member regex renamed to
176 pattern.
177 (node_st): Member pat renamed to regex.
178 (pattern); New member force_explicit_name, for future use. Now
179 always set to true, cannot be reset.
180 (add_regex, regex_tag_multiline, readline): Use it.
181 (main): Free some global structures.
182
183 2002-06-21 Francesco Potorti` <pot@gnu.org>
184
185 * etags.c (fdesc): New member `written'.
186 (readline, process_file): Initialise it.
187 (put_entries): Set it.
188 (main): Use it to create entries for files without tags.
189 (total_size_of_entries): Do not count invalid tags.
190 (etags_strcasecmp): Like BSD's, for compatibility.
191 (strcaseeq): Make it into a macro.
192
193 2002-06-21 Francesco Potorti` <pot@gnu.org>
194
195 * etags.c: (F_getit, Fortran_functions, Ada_getit, Asm_labels)
196 (Python_functions, PHP_functions, PHP_functions, PHP_functions)
197 (PHP_functions, PHP_functions, Cobol_paragraphs)
198 (Makefile_targets, Postscript_functions, Texinfo_nodes)
199 (prolog_pr, erlang_func, erlang_attribute)
200 (Perl_functions, Perl_functions, Pascal_functions)
201 (TeX_commands, get_tag): Use make_tag instead of pfnote.
202 (get_tag): Prototype changed, all callers changed.
203
204 2002-06-20 Francesco Potorti` <pot@gnu.org>
205
206 * etags.c: Use, together with etags.el, an optimised form of tags,
207 which are almost always unnamed. etags.el looks for an explicit
208 tag name, then for an implicit one. See make_tag for details.
209 The change is both forwards and backwards compatible.
210 (make_tag): New function (was the disabled function new_pfnote).
211 (make_C_tag): Use it.
212
213 2002-06-19 Francesco Potorti` <pot@gnu.org>
214
215 * etags.c (add_regex): Invalid regexp modifiers are ignored.
216 (Makefile_targets): Tag variables unless --no-globals.
217 (LOOP_ON_INPUT_LINES): Serious bug corrected.
218
219 2002-06-13 Francesco Potorti` <pot@gnu.org>
220
221 * etags.c (erlang_atom, erlang_attribute): Bugs corrected.
222 (invalidate_nodes): Bug corrected.
223 (print_help): Better help for regexps.
224
225 2002-06-12 Francesco Potorti` <pot@gnu.org>
226
227 * etags.c (arg_type): at_icregexp label removed (obsolete).
228 (pattern): New member multi_line for multi-line regexps.
229 (filebuf): A global buffer containing the whole file as a string
230 for multi-line regexp matching.
231 (need_filebuf): Global flag raised if multi-line regexps used.
232 (print_help): Document new regexp modifiers, remove references to
233 obsolete option --ignore-case-regexp.
234 (main): Do not set regexp syntax and translation table here.
235 (main): Treat -c option as a backward compatibility hack.
236 (main, find_entries): Init and free filebuf.
237 (find_entries): Call regex_tag_multiline after the regular parser.
238 (scan_separators): Check for untermintaed regexp and return NULL.
239 (analyse_regex, add_regex): Remove the ignore_case argument, which
240 is now a modifier to the regexp. All callers changed.
241 (add_regex): Manage the regexp modifiers.
242 (regex_tag_multiline): New function. Reads from filebuf.
243 (readline_internal): If necessary, copy the whole file into filebuf.
244 (readline): Skip multi-line regexps, leave them to regex_tag_multiline.
245
246 2002-06-11 Francesco Potorti` <pot@gnu.org>
247
248 * etags.c (add_regex): Better check for null regexps.
249 (readline): Check for regex matching null string.
250
251 2002-06-07 Francesco Potorti` <pot@gnu.org>
252
253 * etags.c (find_entries): Reorganisation.
254
255 2002-06-07 Francesco Potorti` <pot@gnu.org>
256
257 * etags.c (scan_separators): Support all character escape
258 sequences supported by gcc.
259 (find_entries): rewind unconditionally.
260 (find_entries): Do not call language functions directly, now calls
261 itself.
262 (find_entries): Do general initialisations here.
263 (CNL_SAVE_DEFINEDEF, C_entries, LOOP_ON_INPUT_LINES, F_getit)
264 (Ada_getit, Pascal_functions, Pascal_functions)
265 (prolog_skip_comment): Do not do them here.
266 (readline_internal): Increment lineno here.
267 (readline): Conditionally undo readline_internal increment.
268 (readline): Do not return a value.
269
270 2002-06-06 Francesco Potorti` <pot@gnu.org>
271
272 * etags.c (enum arg_type): New label at_stdin.
273 (STDIN): New constant.
274 (parsing_stdin): New flag.
275 (longopts): New option --parse-stdin=NAME.
276 (print_help): Document it.
277 (main): Handle it.
278 (process_file): Split into process_file and process_file_name.
279 (process_file_name): New function.
280
281 2002-06-06 Francesco Potorti` <pot@gnu.org>
282
283 * etags.c (main): Avoid a buffer overrun with sprintf.
284 (TEX_cmt): Make it a static char and move it before TeX_commands.
285 (TeX_commands): Skip comments.
286 (TEX_defenv): Now contains more contructs.
287 (TeX_commands): Shorten the tag to the brace after the name.
288 (TeX_commands): Allow for names with embedded spaces.
289 (TeX_commands): Names now include the initial backslash.
290 (TeX_commands): Names do not include numeric args #n.
291 (TeX_commands): Correct line char number in tags.
292 (TEX_tabent, TEX_token): Deleted.
293 (TeX_commands, TEX_decode_env): Streamlined.
294
295 2002-05-31 Paul Eggert <eggert@twinsun.com>
296
297 * etags.c (main): Use `sort -o TAGFILE TAGFILE' instead of
298 `sort TAGFILE -o TAGFILE', as POSIX 1003.1-2001 disallows
299 the latter usage.
300
301 2002-04-22 Francesco Potorti` <pot@gnu.org>
302
303 * etags.c: (last_node): Make it a global variable.
304 (process_file): Print the tags from the nodes as soon as
305 possible, and delete the nodes. This brings down the memory
306 occupancy as etags to almost the same level as when the #line
307 directives were not parsed.
308 (free_fdesc): New function.
309 (find_entries): Use it.
310 (invalidate_nodes): In etags mode, do not just mark the nodes as
311 invalid, do delete them.
312
313 2002-04-16 Francesco Potorti` <pot@gnu.org>
314
315 * etags.c (find_entries): Bug fix in list management.
316
317 2002-04-15 Francesco Potorti` <pot@gnu.org>
318
319 * etags.c (get_language_from_filename): Add one argument.
320 (strcaseeq): New function.
321 (get_language_from_filename): Use it to do a case insenstitive
322 comparison if called with appropriate args.
323 (find_entries): Try with case insensitive match.
324 (process_file): Bug fixed.
325
326 2002-04-13 Francesco Potorti` <pot@gnu.org>
327
328 * etags.c (find_entries): Delete tags previously obtained from
329 file xxx.c's #line directives when parsing file xxx.y. This is
330 generally done for automatically generated files containing
331 #line directives. This handles the case when xxx.y is tagged
332 before xxx.c, and the entries of xxx.c pointing to xxx.y should
333 be discarded.
334 (language): Added the metasource member. Initializers changed.
335 (invalidate_nodes): New function.
336
337 2002-03-21 Francesco Potorti` <pot@gnu.org>
338
339 * etags.c (readline): Discard lines after having found a #line
340 directive pointing to an already tagged file. This handles the
341 case when xxx.y is tagged before xxx.c, and the entries of
342 xxx.c pointing to xxx.y should be discarded.
343
344 2002-03-15 Francesco Potorti` <pot@gnu.org>
345
346 * etags.c (fdesc): New structure for keeping track of input files.
347 (fdesc): Remove `file' member (a string) and use instead a pointer
348 to a file description structure.
349 (curfile, curfiledir, curtagfname, curlang, nocharno,
350 forced_lang): Global variables removed in favor of fdhead and
351 curfdp, pointers to file description strucures.
352 (longopts, main, print_help): Use the CTAGS conditional to include
353 or exclude options that work on etags or ctags only.
354 (process_file, find_entries, pfnote, add_node, put_entries,
355 readline): Use fdhead and curfdp.
356 (process_file, find_entries): Do not take an arg string, all
357 callers changed.
358
359 2002-03-13 Francesco Potorti` <pot@gnu.org>
360
361 * etags.c (longopts, print_help, main): Test CTAGS to disallow
362 options that are not right for either etags or ctags.
363
364 2002-03-12 Francesco Potorti` <pot@gnu.org>
365
366 * etags.c (number_len, total_size_of_entries): Define them also
367 in CTAGS mode, because gcc does not compile all refs away.
368 (Python_functions, PHP_functions): Name tags, for ctags' sake.
369 (TeX_commands): Name tags. Correction of old disabled code.
370
371 2002-03-06 Francesco Potorti` <pot@gnu.org>
372
373 * etags.c (Python_functions): Consider indented "def" and "class".
374
375 2002-03-05 Francesco Potorti` <pot@gnu.org>
376
377 * etags.c (curfiledir, curtagfname): New global variables.
378 (process_file): Initialise them.
379 (readline): Canonicalize the name found in #line directive.
380
381 2002-03-05 Francesco Potorti` <pot@gnu.org>
382
383 * etags.c: Honour #line directives.
384 (no_line_directive): New global var; set it for old behaviour.
385 (main): Remove some #ifdef in the getopt switch.
386 (add_node, put_entries): Code added to merge different chunks of
387 nodes referring to the same file. Currently the tags are just
388 appended, without any check for duplicates.
389 (Perl_functions): Do not special case ctags.
390 (readline): Identify #line directives and do the right thing.
391 (nocharno, invalidcharno): New global vars.
392 (process_file): Reset nocharno.
393 (readline): Set nocharno.
394 (pfnote): Read nocharno and maybe put invalidcharno in node.
395 (total_size_of_entries, put_entries): Use invalidcharno.
396
397 2002-03-04 Francesco Potorti` <pot@gnu.org>
398
399 * etags.c: Keep the whole tag table in memory, even in etags mode.
400 (main): Call put_entries here even in CTAGS mode.
401 (main, process_file): Check the return values of fclose and pclose.
402 (process_file): Do not call put_entries after parsing each file.
403 (process_file): Canonicalise file names even for ctags.
404 (process_file): Set curfile here...
405 (find_entries): ... not here any more.
406 (add_node): In etags mode, build a linked list of entries (on
407 right pointer) for each file, and link the first entry of each
408 file on left nodes.
409 (put_entries): Print here the name of the file.
410 (put_entries): Print the entries starting from the first file.
411 (number_len, total_size_of_entries): Define these only iin etags
412 mode, make the second work only on the right nodes.
413
414 2002-01-03 Francesco Potorti` <pot@gnu.org>
415
416 * etags.c: Make all global variables static.
417
418 2001-12-21 Francesco Potorti` <pot@gnu.org>
419
420 * etags.c (Perl_functions): Tag packages and use them in sub tags.
421 (get_tag): Return a pointer to the tag that is found.
422
423 2001-12-21 Francesco Potorti` <pot@gnu.org>
424
425 * etags.c (LOOKING_AT): Use !intoken instead of iswhite.
426 (F_takeprec): Renamed from takeprec. All callers changed.
427 (F_getit): Renamed from getit. All callers changed.
428 (nocase_tail): Renamed from tail. All callers changed.
429 (Ada_getit): Renamed from adagetit. All callers changed.
430 (L_getit): Simplified by using get_tag.
431 (Perl_functions, Postscript_functions, erlang_attribute): Use the
432 modified LOOKING_AT.
433 (notinname): Removed '[' and added ')' to the recognised chars.
434 (LOOKING_AT, get_tag, PHP_functions): Use notinname.
435 (Ada_getit, Ada_funcs, Python_functions, Scheme_functions):
436 Clarified, using strneq or notinname.
437 (L_isdef, L_isquote): Removed.
438 (Lisp_functions, L_getit): Clarified.
439
440 2001-12-17 Francesco Potorti` <pot@gnu.org>
441
442 * etags.c: [P_]: Renamed to __P for consistency with config.h.
443 [HAVE_CONFIG_H]: Let config.h deal with __P.
444 [__STDC__] [!HAVE_CONFIG_H]: Define PTR as in config.h.
445 [!__STDC__] [!HAVE_CONFIG_H]: Do not undefine static, because
446 gperf code needs it.
447 [HAVE_CONFIG_H] [!PTR]: Define PTR (for use with Xemacs).
448 [HAVE_CONFIG_H] [!__P]: Define __P (for use with Xemacs).
449 (xmalloc, xrealloc): Use PTR instead of long *.
450 (bool): Make it a define, not a typedef, for C++ compilers.
451 (pattern): Members renamed to avoid name clash in some C++ compilers.
452 (get_language_from_langname): Use const argument.
453
454 2001-12-12 Francesco Potorti` <pot@gnu.org>
455
456 * etags.c (PHP_functions): New function by Diez B. Roggisch,
457 heavily adapted by me, for parsing PHP.
458 (LOOKING_AT): New macro.
459 (Perl_functions, Python_functions, PHP_functions)
460 (Scheme_functions, Texinfo_nodes): Use it.
461 (Perl_functions): Use strneq.
462 (prolog_pred): Renamed to prolog_pr.
463 (prolog_pr): Recognise Prolog rules (thanks to Geert Kloosterman)
464 in addition to predicates.
465 [ETAGS_REGEXPS] [!HAVE_CONFIG_H] [__CYGWIN__]: Prevent
466 unmodified compile, as Cygwin's regex.h is incompatible with us
467 (thanks to Markus Hoenicka).
468 [!HAVE_CONFIG_H] [!__STDC__]: #define const as the empty string.
469
470 2001-05-11 Francesco Potorti` <pot@gnu.org>
471
472 * etags.c (add_regex): Reset the whole newly allocated pattern
473 buffer instead of the individual members. It's safer and works
474 with Xemacs.
475
476 2001-02-23 Francesco Potorti` <pot@gnu.org>
477
478 * etags.c (enum sym_type): New label st_C_template.
479 (gperf input): Use it for switching to C++ from C.
480 (consider_token): Do it.
481
482 2001-02-16 Francesco Potorti` <pot@gnu.org>
483
484 * etags.c (C_entries): Initialise typdefcblev to quiet compilers.
485
486 2001-02-06 Francesco Potorti` <pot@gnu.org>
487
488 * etags.c [!HAVE_CONFIG_H] [!__STDC__]: #define static as nothing.
489
490 2001-01-31 Francesco Potorti` <pot@gnu.org>
491
492 * etags.c: [NDEBUG] #undef assert and #define it as ((void)0), for
493 the sake of some buggy assert.h (e.g. in MinGW and sunos4 pcc).
494 (C_entries): Tag token renamed to still_in_token because sunos4
495 pcc wants to expand it as the token() macro even though it has no
496 arguments.
497
498 2001-01-30 Francesco Potorti` <pot@gnu.org>
499
500 * etags.c: [WIN32-NATIVE]: #undef MSDOS, #undef WINDOWSNT and
501 #define it for the sake of Xemacs.
502 [WINDOWSNT]: #undef HAVE_NTGUI even if built without
503 HAVE_CONFIG_H. This change only affects a standalone etags.
504 [WINDOWSNT]: #undef DOS_NT and #define it even if built with
505 HAVE_CONFIG_H. This change does nothing in Emacs, as DOS_NT is
506 always defined when HAVE_CONFIG_H and WINDOWS are both defined.
507 [!HAVE_UNISTD_H]: use defined(WINDOWSNT) instead of the bare
508 WINDOWSNT, as this is the correct way to use it.
509
510 2001-01-28 Francesco Potorti` <pot@gnu.org>
511
512 * etags.c: Be capable to parse nested struct-like structures.
513 (structdef, structtag): Struct state machine revisited.
514 (struct tok): Revisited.
515 (cstack, nestlev, instruct): New struct and macros.
516 (pushclass_above, popclass_above, write_classname): New functions
517 for dealing with nested class names, inspired by Mykola Dzyuba.
518 (consider_token, make_C_tag, C_entries): Many changes for dealing
519 with arbitrarily nested structures.
520 (etags_getcwd): #if MSDOS, not #ifdef MSDOS!
521 (C_entries): Consider templates in C++.
522 (sym_type): New constant st_C_class for detecting "class" also in
523 C mode.
524 (C_AUTO): New macro for automatic detection of C++.
525 (consider_token): Automatic set C++ mode.
526 (C_entries): New security check for yacc.
527 (print_language_names, print_help): Mention the autodetect
528 feature, do not show help for the -C option, now mostly useless.
529 (C_entries): Tag C++ forward declarations if --declarations.
530 (C_entries): Don't be fooled by things like XDEFUN.
531 (consider_token): Discard asm pseudo function.
532
533 2001-01-25 Francesco Potorti` <pot@potorti.it>
534
535 * etags.c (struct tok): Renamed from struct token.
536 (token): Renamed from tok.
537 (structtype): Make it a local variable.
538 [DEBUG]: Use assert.
539 (xrnew): Change the synopsis.
540 (typedefs_or_cplusplus): Renamed from typedefs_and_cplusplus.
541 (grow_linebuffer): Don't call xrnew when not needed.
542 (token): buffer renamed to line.
543 (C_entries): Three calls to inibuffer moved here from main.
544 (C_entries): Removed all references to var methodlen, delete it.
545 (linebuffer_setlen): Was grow_buffer, now also sets len.
546 (consider_token, C_entries, Pascal_functions): Use it.
547 (C_entries): Preventing problems relative to extern "C".
548 (C_entries): Can tag more than one variable or func separated by
549 comma when --declarations is used.
550 (C_entries): More accurate tagging of members and declarations.
551 (yacc_rules): Was global, made local to C_entries.
552 (next_token_is_func): Removed.
553 (fvdef): New constants fdefunkey, fdefunname.
554 (consider_token, C_entries): Use them.
555 (C_entries): Build proper lisp names for Emacs DEFUNs.
556
557 2001-01-15 Francesco Potorti` <pot@pot.cnuce.cnr.it>
558
559 * etags.c (print_language_names): Print filenames in addition to
560 suffixes.
561
562 2001-01-12 Francesco Potorti` <pot@gnu.org>
563
564 * etags.c (get_language_from_langname): Renamed from
565 get_language_from_name.
566 (get_language_from_filename): Renamed from
567 get_language_from_suffix. Now first looks for the complete file
568 name.
569 (language): New member char **filenames.
570 (Makefile_filenames): List of possible filenames for makefiles.
571 (lang_names): Added a NULL member for every entry, added an entry
572 for makefiles.
573 (Makefile_targets): New function, inspired by Assar Westerlund
574 <assar@sics.se>.
575
576 2000-11-07 Francesco Potortì <pot@pot.cnuce.cnr.it>
577
578 * etags.c (Texinfo_nodes): Renamed from Texinfo_fuctions and made
579 it conformant to the style of the rest of the code.
580
581 2000-02-10 Francesco Potorti` <pot@gnu.org>
582
583 * etags.c (iswhite): Redefined not to consider '\0' as white
584 space, and use it throughout in place of isspace, thus preventing a
585 potential signed char to int conversion problem.
586 (MSDOS): #undefine befere redefining
587
588 2000-02-04 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
589
590 * etags.c (many functions): Add prototypes.
591
592 2000-01-31 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
593
594 * etags.c [MSDOS]: Set MSDOS to 1 if #defined, 0 otherwise.
595 (get_compressor_from_suffix, process_file): Use MSDOS in if clause.
596 (etags_strchr, etags_strrchr): Use const char * and int as arguments.
597 (getenv, getcwd): Only declare them if necessary.
598 (EMACS_NAME): New constant macro.
599 (print_version): Use it.
600 (P_) [__STDC__]: Macro for defining function prototypes.
601
602 2000-01-18 Fabrice Popineau <Fabrice.Popineau@supelec.fr>
603
604 * etags.c [WINDOWSNT]: #include <direct.h>
605
606 2000-01-18 Martin Buchholz <martin@xemacs.org>
607
608 * etags.c (all functions): Made them static.
609 (all functions): Write prototypes.
610
611 1999-11-19 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
612
613 * etags.c (_GNU_SOURCE): Define only if undefined.
614 (get_scheme): Declaration deleted.
615 (main): error was called with an integer as second arg, instead of
616 a char pointer.
617 (canonicalize_filename): Bug removed.
618
619 1999-11-18 Dave Love <d.love@dl.ac.uk>
620
621 * etags.c (C_entries): Rename label `intoken', avoiding K&R
622 lossage from name clash with macro.
623
624 1999-09-14 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
625
626 * etags.c: Add suffix psw for PSWrap.
627 (L_getit): Generalize a "cp!=' '" into "!isspace(*cp)".
628 (Postscript_functions): Add code for PSWrap.
629 (Scheme_functions): Use local pointer and new get_tag function.
630 (get_tag): New name for old get_scheme.
631 (process_file): Do not free NULL when file does not exist.
632 (typdef): ttypedefseen renamed to tkeyseen, new label ttypeseen.
633 (C_entries): Modifications that make --members tag even inside
634 typedefs and C nested structs (one level only).
635 (consider_token): Corrected a bug which prevented tagging of enum
636 constants.
637 (C_stab_entry): Added if, for, while, switch, return as
638 st_C_ignore. This makes it simpler to work when cblev!=0.
639
640 1999-04-21 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
641
642 * etags.c (C_entries): tag member function declarations when
643 --declarations is used.
644
645 1999-04-20 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
646
647 * etags.c (C_entries, consider_token): C++ `operator' now is
648 tagged in most cases.
649 As before, :: is not recognised if surrounded by spaces.
650
651 1999-01-14 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
652
653 * etags.c (relative_filename): Account for DOS file names such
654 that is impossible to make one relative to another.
655
656 1998-10-09 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
657
658 * etags.c (sym_type): New st_C_extern tag.
659 (gperf input): Use it for spotting external declarations.
660 (print_help): Document the new behaviour of --declarations.
661 (fvextern): New global variable.
662 (consider_token, C_entries): Use it.
663
664 1998-06-19 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
665
666 * etags.c (HAVE_GETCWD) [WINDOWSNT]: Define if undefined.
667 (etags_getcwd): Remove test for WINDOWSNT.
668
669 1998-06-16 Eli Zaretskii <eliz@is.elta.co.il>
670
671 * etags.c (process_file) [MSDOS]: If foo.c.gz is not found, try
672 foo.cgz, foo.cz, etc.
673
674 1998-06-15 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
675
676 * etags.c (declarations): New global switch.
677 (longopts): Describe it.
678 (print_help): Document it.
679 (C_entries): Use it.
680 (process_file): Don't process a file twice.
681
682 1998-06-02 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
683
684 * etags.c (Fortran_functions): No tags for "procedure".
685
686 1998-05-29 Eli Zaretskii <eliz@is.elta.co.il>
687
688 * etags.c (get_compressor_from_suffix): Second argument EXTPTR, if
689 non-zero, returns a pointer to where the extension begins; callers
690 changed.
691 [MSDOS]: Support DOS file names by handling e.g. foo.cgz as if it
692 were foo.c.gz.
693
694 1998-05-18 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
695
696 * etags.c (sym_type, C_stab_entry): New constant st_C_operator.
697 (fvdev): New constant foperator.
698 (consider_token): Use it to get "operator" in C++.
699 (C_entries): Extend length of operator@ function name.
700 (C_entries): Use foperator when necessary.
701
702 1998-05-13 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
703
704 * etags.c (main) [!ETAGS_REGEXPS]: Do not call free_patterns.
705
706 1998-05-12 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
707
708 * etags.c (compressor): New struct for compressed files.
709 (get_compressor_from_suffix): New function.
710 (get_language_from_suffix): Use it. Also, semantics changed.
711 (process_file): Consider compressed files, close file.
712 (find_entries): Use different call arg for get_language_from_suffix,
713 don't close file.
714
715 1998-05-11 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
716
717 * etags.c (main): Call free_tree.
718 (find_entries): Do not free curfile.
719 (pfnote): Cosmetic change: NULL and '\0' where appropriate.
720 (prolog_pred, erlang_func, substitute): Cast strlen to int when
721 comparing.
722 (canonicalize_filename): Shut up compiler warning.
723 (Perl_functions): Make tag significant.
724
725 1997-11-27 Dave Love <d.love@dl.ac.uk>
726
727 * etags.c (longopts, optstring): New option --ignore-case-regex (-c).
728 (argument_type): New member at_icregexp.
729 (lc_trans): New global.
730 (main): Fill lc_trans. Process -c args.
731 (add_regex): New arg determining whether to use translation table.
732 (analyse_regex): New arg. Use it for add_regex.
733
734 1997-09-30 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
735
736 * etags.c (init): Cosmetic change: NULL --> '\0'.
737 (erlang_attribute): Bug corrected (uninitialized variable).
738 (filename_is_absolute): New function replaces absolutefn macro and
739 corrects a bug. All callers changed.
740 (canonicalize_filename): New function.
741 (process_file, etags_getcwd, absolute_dirname): Use it.
742 (relative_filename, absolute_filename): Removed var shadowing.
743 (C_entries, Pascal_functions): Add fake initializations to keep
744 compilers quiet.
745 (TeX_functions, Prolog_functions, Erlang_functions): Cleanup.
746
747 1997-09-20 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
748
749 * etags.c (xrnew): New macro. All callers of xrealloc changed.
750 (language): New typedef (was struct lang_entry).
751 (curlang): New global variable.
752 (node): typedef renamed from NODE.
753 (linebuffer): New typedef (was struct linebuffer).
754 (pattern): New typedef (was struct pattern). Some members added.
755 Now used as element of a linked list.
756 (patterns, num_patterns): Global variables deleted.
757 (p_head): New global variable.
758 (forced_lang): New global variable (replaces lang_func).
759 (get_language_from_name, get_language_from_interpreter,
760 get_language_from_suffix): Semantics changed. All callers changed.
761 (last_node): New global variable.
762 (free_tree, add_node, put_entries, total_size_of_entries): Change
763 name of local vars to avoid clashes with typedef node.
764 (number_len): Rewritten for elegance.
765 (token): New typedef replaces TOKEN.
766 (analyse_regex, add_regex): Rewritten for new functionality.
767 (free_patterns): New function called from main and add_regex.
768 (initbuffer, readline_internal, readline, grow_linebuffer):
769 Change name of local vars to avoid clashes with typedef
770 linebuffer.
771 (readline): Rewritten for new functionality.
772
773 1997-09-04 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
774
775 * etags.c: (Scheme_suffixes): New suffix ".ss".
776 (print_help): --globals is now used for more than C-type languages.
777 (Perl_functions): Tag global variables ("my" and "local").
778
779 1997-08-22 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
780
781 * etags.c (print_help): Some messages clarified.
782 (LOOP_ON_INPUT_LINES): New macro.
783 (just_read_file, Fortran_functions, Asm_labels, Perl_functions,
784 Python_functions, Cobol_paragraphs, Pascal_functions,
785 Lisp_functions, Postscript_functions, Scheme_functions,
786 TeX_functions, Prolog_functions, Erlang_functions): Use it.
787 (Cobol_paragraphs, Postscript_functions, TeX_functions,
788 Prolog_functions, Erlang_functions): Use a local variable instead
789 of the global variable dbp.
790 (Pascal_functions, L_isquote, Scheme_functions): Use GNU coding
791 standard indentation.
792
793 1997-08-21 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
794
795 * etags.c (Python_suffixes, lang_names, Python_functions): Python
796 support.
797 (skip_spaces, skip_non_spaces): Utility functions.
798 (find_entries, takeprec, getit, Fortran_functions, Perl_functions,
799 Python_functions, L_getit, Lisp_functions, Scheme_functions,
800 prolog_pred, erlanf_func, erlang_attribute): Use them.
801 (eat_white): Deleted.
802
803 1997-08-20 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
804
805 * etags.c (CHAR, init): Keep into account non US-ASCII
806 characters and compilers with default signed chars.
807 (L_getit): Tag "(defstruct (foo", "(defun (operator" and similar
808 constructs.
809
810 1997-07-04 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
811
812 * (C_stab_entry): "interface" in Java behaves like "class".
813
814 1997-06-23 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
815
816 * etags.c: (HAVE_NTGUI) [WINDOWSNT]: #undef if HAVE_CONFIG_H.
817 (main): Put interval syntax here.
818 (add_regex): And remove it from here.
819
820 1997-06-17 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
821
822 * etags.c (suggest_asking_for_help): Provide a
823 meaningful help message with and without LONG_OPTIONS.
824
825 1997-06-09 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
826
827 * etags.c: <io.h> [MSDOS]: Include it, don't include string.h.
828 <stdlib.h, string.h>: Don't test MSDOS when including them.
829 (white, nonam, endtk): Like elsewhere, use \r instead of \013.
830 (put_entries): Correctly use %ld instead of %d in printf.
831
832 1997-06-04 Francesco Potorti` <F.Potorti@cnuce.cnr.it>
833
834 * etags.c: <unistd.h> [HAVE_UNISTD_H]: Include conditionally, else
835 declare getcwd if HAVE_GETCWD.
836 (consider_token): Dead break instruction removed.