Branch: refs/heads/master Author: Jiří Techet techet@gmail.com Committer: Jiří Techet techet@gmail.com Date: Fri, 06 May 2022 22:32:28 UTC Commit: ef2265c451b93e0990e151c6e7764841f16e2bc9 https://github.com/geany/geany/commit/ef2265c451b93e0990e151c6e7764841f16e2b...
Log Message: ----------- Fix renaming of variables with anonymous type
It is possible to define variables such as
struct {/* someting */} a, b;
In this case, we need to change the 'var_type' to correspond to the renamed anonymous struct.
Modified Paths: -------------- src/tagmanager/tm_ctags.c
Modified: src/tagmanager/tm_ctags.c 20 lines changed, 20 insertions(+), 0 deletions(-) =================================================================== @@ -354,6 +354,26 @@ static void rename_anon_tags(TMSourceFile *source_file) } }
+ /* We are out of the nesting - the next tags could be variables + * of an anonymous struct such as "struct {} a, b;" */ + while (j < source_file->tags_array->len) + { + TMTag *var_tag = TM_TAG(source_file->tags_array->pdata[j]); + guint var_scope_len = var_tag->scope ? strlen(var_tag->scope) : 0; + + /* Should be at the same scope level as the anon tag */ + if (var_scope_len == scope_len && + g_strcmp0(var_tag->var_type, orig_name) == 0) + { + g_free(var_tag->var_type); + var_tag->var_type = g_strdup(new_name); + } + else + break; + + j++; + } + g_free(orig_name); } }
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).