diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2023-12-01 12:38:43 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2023-12-01 12:38:43 +0900 |
commit | b67b7f2b784c7105e88a5e639d9d84736ae2cbc1 (patch) | |
tree | 0fd16d439c681c07d57d7f0d544c7582e04c3a31 /debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/parameter_pack_cleanup.cpp | |
parent | c0a6f1b84c84749908961579b84513fd9f9d9eac (diff) | |
download | extra-dependencies-b67b7f2b784c7105e88a5e639d9d84736ae2cbc1.tar.gz extra-dependencies-b67b7f2b784c7105e88a5e639d9d84736ae2cbc1.zip |
uncrustify-trinity: updated based on upstream version 0.78.1
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
Diffstat (limited to 'debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/parameter_pack_cleanup.cpp')
-rw-r--r-- | debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/parameter_pack_cleanup.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/parameter_pack_cleanup.cpp b/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/parameter_pack_cleanup.cpp new file mode 100644 index 00000000..12992ff3 --- /dev/null +++ b/debian/uncrustify-trinity/uncrustify-trinity-0.78.1/src/parameter_pack_cleanup.cpp @@ -0,0 +1,65 @@ +/** + * @file parameter_pack_cleanup.cpp + * + * @author Guy Maurel + * @license GPL v2+ + */ + +#include "parameter_pack_cleanup.h" + +#include "chunk.h" +#include "uncrustify.h" + + +void parameter_pack_cleanup() +{ + LOG_FUNC_ENTRY(); + + Chunk *pc = Chunk::GetHead(); + + while (pc->IsNotNullChunk()) + { + LOG_CHUNK(LTOK, pc); + + // look for template + if (pc->Is(CT_TEMPLATE)) // Issue #3309 + { + Chunk *template_end = pc->GetNextType(CT_SEMICOLON, pc->GetLevel()); + + // look for a parameter pack + while (pc->IsNotNullChunk()) + { + LOG_CHUNK(LTOK, pc); + + if (pc->Is(CT_PARAMETER_PACK)) + { + Chunk *parameter_pack = pc; + + // look for a token with the same text + while (pc->IsNotNullChunk()) + { + LOG_CHUNK(LTOK, pc); + + if (pc == template_end) + { + break; + } + + if (strcmp(pc->Text(), parameter_pack->Text()) == 0) + { + pc->SetType(CT_PARAMETER_PACK); + } + pc = pc->GetNext(); + } + } + pc = pc->GetNext(); + + if (pc == template_end) + { + break; + } + } + } + pc = pc->GetNext(); + } +} // parameter_pack_cleanup |