Commit 8c463abe authored by Francesco Potortì's avatar Francesco Potortì

Many changes to the parsing capabilities of etags.

The -C or -c++ options are now mostly obsolete.
Can delve at arbitrary deeps into structures of C-like languages.
parent b179a3a2
......@@ -1460,6 +1460,12 @@ declarations when given the --declarations option.
*** In C++, tags are created for "operator". The tags have the form
"operator+", without spaces between the keyword and the operator.
*** You shouldn't generally need any more the -C or -c++ option: etags
automatically detects a C++ file when it meets the `class' keyword.
*** Etags now is able to delve at arbitrary deeps into nested structures in
C-like languages. Previously, it was limited to one or two brace levels.
*** New language Ada: tags are functions, procedures, packages, tasks, and
2001-01-28 Francesco Potorti` <>
* etags.c: Be capable to parse nested struct-like structures.
(structdef, structtag): Struct state machine revisited.
(struct tok): Revisited.
(cstack, nestlev, instruct): New struct and macros.
(pushclass_above, popclass_above, write_classname): New functions
for dealing with nested class names, inspired by Mykola Dzyuba.
(consider_token, make_C_tag, C_entries): Many changes for dealing
with arbitrarily nested structures.
(etags_getcwd): #if MSDOS, not #ifdef MSDOS!
(C_entries): Consider templates in C++.
(sym_type): New constant st_C_class for detecting "class" also in
C mode.
(C_AUTO): New macro for automatic detection of C++.
(consider_token): Automatic set C++ mode.
(C_entries): New security check for yacc.
(print_language_names, print_help): Mention the autodetect
feature, do not show help for the -C option, now mostly useless.
(C_entries): Tag C++ forward declarations if --declarations.
(C_entries): Don't be fooled by things like XDEFUN.
(consider_token): Discard asm pseudo function.
2001-01-27 Eli Zaretskii <>
* etags.c: Add a coding: tag.
2001-01-26 Gerd Moellmann <>
* ebrowse.c (matching_regexp_buffer, matching_regexp_end_buf):
* ebrowse.c (matching_regexp_buffer, matching_regexp_end_buf):
New variables.
(matching_regexp): Use them instead of static variables in
function scope.
......@@ -16,7 +16,7 @@ etags, ctags \- generate tag file for Emacs, vi
.if n .br
.B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
.B [\|\-\-append\|] [\|\-\-c++\|] [\|\-\-no\-defines\|]
.B [\|\-\-append\|] [\|\-\-no\-defines\|]
.B [\|\-\-no\-globals\|] [\|\-\-include=\fIfile\fP\|]
.B [\|\-\-ignore\-indentation\|] [\|\-\-language=\fIlanguage\fP\|]
.B [\|\-\-members\|] [\|\-\-output=\fItagfile\fP\|]
......@@ -29,7 +29,7 @@ etags, ctags \- generate tag file for Emacs, vi
.if n .br
.B [\|\-o \fItagfile\fP\|] [\|\-r \fIregexp\fP\|]
.B [\|\-\-append\|] [\|\-\-backward\-search\|] [\|\-\-c++\|]
.B [\|\-\-append\|] [\|\-\-backward\-search\|]
.B [\|\-\-cxref\|] [\|\-\-defines\|] [\|\-\-forward\-search\|]
.B [\|\-\-globals\|] [\|\-\-ignore\-indentation\|]
.B [\|\-\-language=\fIlanguage\fP\|] [\|\-\-members\|]
......@@ -81,11 +81,6 @@ The default is to use the delimiter `\|\fB/\fP\|', to search \fIforwards\fP
through files.
Only \fBctags\fP accepts this option.
.B \-C, \-\-c++
Treat files with `\|.c\|' and `\|.h\|' extensions as C++ code, not C
code. Files with `\|.C\|', `\|.H\|', `\|.cxx\|', `\|.hxx\|', or
`\|.cc\|' extensions are always assumed to be C++ code.
.B \-\-declarations
In C and derived languages, create tags for function declarations,
and create tags for extern variables unless \-\-no\-globals is used.
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment