diff options
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp')
-rw-r--r-- | debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp new file mode 100644 index 00000000..4a2afbaa --- /dev/null +++ b/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp @@ -0,0 +1,68 @@ +/** + * @file parameter_pack_cleanup.cpp + * + * @author Guy Maurel + * @license GPL v2+ + */ + +#include "parameter_pack_cleanup.h" + +#include "chunk_list.h" + + +void parameter_pack_cleanup(void) +{ + LOG_FUNC_ENTRY(); + + chunk_t *pc = chunk_get_head(); + + while (pc != nullptr) + { + LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n", + __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text()); + + // look for template + if (chunk_is_token(pc, CT_TEMPLATE)) // Issue #3309 + { + chunk_t *template_end = chunk_get_next_type(pc, CT_SEMICOLON, pc->level); + + // look for a parameter pack + while (pc != nullptr) + { + LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n", + __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text()); + + if (chunk_is_token(pc, CT_PARAMETER_PACK)) + { + chunk_t *parameter_pack = pc; + + // look for a token with the same text + while (pc != nullptr) + { + LOG_FMT(LTOK, "%s(%d): orig_line is %zu, orig_col is %zu, text() is '%s'\n", + __func__, __LINE__, pc->orig_line, pc->orig_col, pc->text()); + //pc = chunk_get_next(pc); + + if (pc == template_end) + { + break; + } + + if (strcmp(pc->text(), parameter_pack->text()) == 0) + { + set_chunk_type(pc, CT_PARAMETER_PACK); + } + pc = chunk_get_next(pc); + } + } + pc = chunk_get_next(pc); + + if (pc == template_end) + { + break; + } + } + } + pc = chunk_get_next(pc); + } +} // parameter_pack_cleanup |