[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++
From: |
Eli Zaretskii |
Subject: |
bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files. |
Date: |
Sat, 23 May 2015 17:46:18 +0300 |
> Date: Sat, 23 May 2015 16:50:11 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: 20629@debbugs.gnu.org
>
> We should try to fix bugs without re-introducing previously solved
> ones.
Does the patch below give good results in real-life C++ usage?
Please also consider whether this change could cause trouble in other
C++ use cases. (I've ran the modified version on the etags test
suite, and didn't spot any problems in the differences with the
previous results, but I don't consider myself an expert on C++
syntax.)
Thanks.
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 28729da..cb96f06 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -3681,7 +3681,29 @@ enum, 0, st_C_enum
switch (fvdef)
{
case flistseen:
- make_C_tag (true); /* a function */
+ if ((c_ext & C_PLPL) != 0)
+ {
+ /* Tag C++ member function names, excluding the class and
+ namespace instances, if any. */
+ char *colon_colon = strstr (token_name.buffer, "::");
+ char *colon_colon2 =
+ colon_colon
+ ? strstr (colon_colon + 2, "::")
+ : NULL;
+
+ if (colon_colon2 != NULL)
+ colon_colon = colon_colon2;
+
+ if (colon_colon != NULL)
+ {
+ memmove (token_name.buffer, colon_colon + 2,
+ strlen (colon_colon + 2) + 1);
+ token_name.len = strlen (token_name.buffer);
+ }
+ make_C_tag (true); /* a member function */
+ }
+ else
+ make_C_tag (true); /* a function */
/* FALLTHRU */
case fignore:
fvdef = fvnone;
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Jan D., 2015/05/22
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Jan Djärv, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Dmitry Gutov, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Jan Djärv, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Dmitry Gutov, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Jan Djärv, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Dmitry Gutov, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Eli Zaretskii, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Eli Zaretskii, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files.,
Eli Zaretskii <=
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Eli Zaretskii, 2015/05/23
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Eli Zaretskii, 2015/05/25
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Dmitry Gutov, 2015/05/25
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Eli Zaretskii, 2015/05/25
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Dmitry Gutov, 2015/05/26
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Eli Zaretskii, 2015/05/26
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Dmitry Gutov, 2015/05/26
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Eli Zaretskii, 2015/05/26
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Stefan Monnier, 2015/05/26
- bug#20629: 25.0.50; Regression: TAGS broken, can't find anything in C++ files., Dmitry Gutov, 2015/05/28