summaryrefslogtreecommitdiffstats
path: root/debian/uncrustify-trinity/uncrustify-trinity-0.74.0/src/parameter_pack_cleanup.cpp
diff options
context:
space:
mode:
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.cpp68
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