diff options
Diffstat (limited to 'lib-src')
-rw-r--r-- | lib-src/etags.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/lib-src/etags.c b/lib-src/etags.c index 8b980d365ef..5f985b027b2 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -4954,7 +4954,22 @@ Lua_functions (FILE *inf) (void)LOOKING_AT (bp, "local"); /* skip possible "local" */ if (LOOKING_AT (bp, "function")) - get_tag (bp, NULL); + { + char *tag_name, *tp_dot, *tp_colon; + + get_tag (bp, &tag_name); + /* If the tag ends with ".foo" or ":foo", make an additional tag for + "foo". */ + tp_dot = strrchr (tag_name, '.'); + tp_colon = strrchr (tag_name, ':'); + if (tp_dot || tp_colon) + { + char *p = tp_dot > tp_colon ? tp_dot : tp_colon; + int len_add = p - tag_name + 1; + + get_tag (bp + len_add, NULL); + } + } } } |